Поддержка ADAL SQL Runbook автоматизации Azure
Я пытаюсь использовать книгу выполнения Azure Automation для выполнения запроса к базе данных SQL Azure с использованием учетных данных Azure AD:
$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 Automation не установлена библиотека ADAL SQL? Есть ли простой способ обойти это (и при этом использовать для подключения учетную запись Azure AD)?
Я использовал этот пример в качестве отправной точки.
2 ответа
В конце концов я создал гибридных рабочих, которые позволили мне установить последнюю версию библиотеки ADAL SQL, которая поддерживает аутентификацию Azure AD.
Вы извлекаете имя пользователя и пароль из $SqlCredential, но сохраняете учетные данные в переменной $cred. Эти переменные должны быть одинаковыми. Также убедитесь, что объект учетной записи автоматизации создан в учетной записи автоматизации Azure с тем же именем, что и SqlAdminUser.