在 DevOps 中修改 Azure Analysis Services 数据库角色
Amending Azure Analysis Services Database Roles in DevOps
我正在尝试在 Azure DevOps 中为 Azure Analysis Services 数据库部署配置 CI/CD 管道。
部署 Model.bim 文件非常简单,使用已经可用的 'Azure Analysis Service Deployment' 任务。
但是,分配给 AAS 数据库中角色的 AD 组会根据部署是测试还是生产而变化。我一直在寻找 运行 某种 PowerShell 来实现这一点,但是搜索这个特定场景的时间没有结果。当前Az.AnalysisServices似乎没有超出其范围内的实际服务器:
https://docs.microsoft.com/en-us/powershell/module/az.analysisservices/?view=azps-3.1.0
上述文档中有一个使用标准 SQL Powershell 命令的参考,但是它实际上没有任何用于 AAS 的示例脚本,甚至没有任何基于云的解决方案。
不知道有没有人成功过?如果需要,我愿意连接到 VM 和 运行ning 脚本,但首选完全基于云的解决方案。
也欢迎 TMSL 解决方案。
为了后代,我使用了 Invoke-ASCmd
和一个 createOrReplace
语句,这实现了我需要做的事情。
这涉及创建连接凭据(我使用的是服务帐户),创建包含 createOrReplace
语句的参数,然后针对 AAS 执行它:
$password = ConvertTo-SecureString “<password>” -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential (“<user>@<domain>”, $password)
Connect-AzAccount -Credential $Cred
$TMSLCommand = @"
{
"createOrReplace": {
"object": {
"database": "<AAS Database>",
"role": "Read"
},
"role": {
"name": "Read",
"modelPermission": "read",
"members": [
{
"memberName": "<ad group object id/user>@<tenant id/domain>",
"identityProvider": "AzureAD"
}
]
}
}
}
"@
Invoke-ASCmd -Server "<AAS Server Name>" -Database "<AAS Database>" -Query $TMSLCommand -Credential $Cred;