我需要在一夜之间在azure sql数据库上运行一些批量操作。
我有一个PowerShell脚本,该脚本使用对服务帐户使用sql凭据的invoke-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计划的任务,以每晚从我的VM运行,但是我不喜欢在PowerShell脚本中有SQL凭据。
有问题的VM具有系统分配的托管身份,我已经使用该身份访问blob存储。
我已经在Azure SQL中为此身份设置了一个sql用户:
CREATE USER [myVmName] FROM EXTERNAL PROVIDER
我已经授予了所有必需的权限。
如何使用PowerShell脚本中的托管身份?
P.S。我坚持使用Invoke-Sqlcmd并不珍贵。
答案 0 :(得分:0)
恭喜Twisted找到了解决方案:
“”我找到了此页面,该页面的右下部分是使用带有托管身份的PowerShell的底部:Tutorial: Use a Windows VM system-assigned managed identity to access Azure SQL“
我帮助他将其发布为答案,这可能对其他社区成员有益。