Azure 自动化 Runbook ADAL SQL 支持

Azure Automation Runbook ADAL SQL support

我正在尝试使用 Azure Automation Runbook 运行 使用 Azure AD 凭证对 Azure SQL 数据库进行查询:

$cred = Get-AutomationPSCredential -Name 'SqlAdminUser'
$Username = $cred.UserName
$Password = $cred.GetNetworkCredential().Password
$Server = 'server.database.windows.net'
$Port = 1433
$cxnString = "Server=tcp:$Server,$Port;Database=$Database;Authentication=Active Directory Password;UID=$UserName;PWD=$Password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"

$cxn = New-Object System.Data.SqlClient.SqlConnection($cxnString)
$cxn.Open()
$cmd = New-Object System.Data.SqlClient.SqlCommand($query, $cxn)
$cmd.CommandTimeout = 120
$cmd.ExecuteNonQuery()
$cxn.Close()

我收到以下错误:

Keyword not supported: 'authentication'.

所以 Azure Automation 似乎没有安装 ADAL SQL library?有什么简单的方法可以解决这个问题(并且仍然使用 Azure AD 帐户进行连接)?

我使用 this 示例作为起点。

您正在从 $SqlCredential 获取用户名和密码,但您将凭据存储在 $cred 变量中。这些变量需要相同。还要确保在 azure 自动化帐户中创建了与 'SqlAdminUser'

同名的自动化凭据对象

最后我创建了混合工作者,它允许我安装支持 Azure AD 身份验证的最新版本 ADAL SQL library