0

我正在尝试使用 Azure 自动化 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()

我收到以下错误:

不支持关键字:“身份验证”。

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

我用这个例子作为起点。

4

2 回答 2

0

您正在从 $SqlCredential 获取用户名和密码,但您将凭据存储在 $cred 变量中。这些变量必须相同。还要确保在 azure 自动化帐户中创建了一个与“SqlAdminUser”同名的自动化凭证对象

于 2016-10-07T12:04:25.807 回答
0

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

于 2017-02-24T15:04:32.390 回答