在Terraform中运行invoke sqlcmd



我已经在terraform中创建了这个-我正试图在sql Server构建并在正确的时间运行后在它上执行一些sql命令。我真的不能使用用户名和密码来执行Invoke-sqlcmd,当Terraform使用正确的帐户运行时,我为什么要这样做。

这是我的代码:

resource "null_resource" "create-sql-user" {
provisioner "local-exec" {
command = <<EOT
Install-Module -Name SqlServer -Force
Invoke-Sqlcmd -Query "CREATE LOGIN [azSG-ATP-Users-${var.environment}] FROM EXTERNAL PROVIDER" -ConnectionString "Server=tcp:sqlsvr-${lower(var.locationname)}-${lower(var.resourcename)}-${lower(var.environment)}.database.windows.net,1433;Initial Catalog=Master;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;" 
EOT


interpreter = ["pwsh", "-Command"]
}
depends_on = ["azurerm_sql_firewall_rule.main"]
}

我不能使用连接字符串的身份验证部分来使用集成安全性,因为这是不允许的。我已经为此奋斗了好几天了。

关于这个主题的任何想法或工作实例。

我得到错误:

Login failed for user ''.

它是Azure SQL数据库。Windows集成安全性不起作用。ActiveDirectoryIntegrated是一个AAD身份验证方法,可能有效,但Invoke-SqlCmd不公开该方法。这里最简单的解决方案是使用AccessToken。

最新更新