Мне нужно выполнить несколько массовых операций за одну ночь в базе данных azure sql.
У меня есть сценарий PowerShell, который использует команды invoke- sql, используя учетные данные sql для учетной записи службы. Вот пример:
$params = @{
'Database' = 'test-db'
'ServerInstance' = 'my-db.database.windows.net'
'Username' = 'service_account'
'Password' = 'my exposed password'
'OutputSqlErrors' = $true
'Query' = 'SELECT top 10 * FROM dbo.CaseHistory'
}
Invoke-Sqlcmd @params
Я хочу установить это как запланированное задание windows, которое будет запускаться с моей виртуальной машины каждую ночь, однако мне не нравится иметь учетные данные SQL в сценарии PowerShell. .
У рассматриваемой виртуальной машины есть назначенный системой управляемый идентификатор, который я уже использую для доступа к хранилищу BLOB-объектов.
Я уже настроил пользователя sql для этого идентификатора в azure sql:
CREATE USER [myVmName] FROM EXTERNAL PROVIDER
И я предоставил все необходимые разрешения.
Как использовать управляемую идентификацию из сценария PowerShell?
PS Я не ценю то, что придерживаюсь Invoke-Sqlcmd.