ARM的部署:模板资源'sql的授权失败

时间:2020-04-08 14:45:04

标签: azure-resource-manager

我尝试使用PS和ARM部署SQL Server逻辑服务器。我可以使用贡献者权限在门户网站上成功创建逻辑服务器,但是无法弄清楚这里出了什么问题。

我在Windows上具有PowerShell ISE。

ARM模板是从https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-logical-server/复制并粘贴的

//CODE
Connect-AzAccount -Credential $Credential -Tenant $tenant -Subscription $subscription

#ARM Deployment
$templateFile = "C:\Azure\SQLServer\azuredeploy.json"

New-AzResourceGroupDeployment `
  -Name SQLDeployment `
  -ResourceGroupName my-rg `
  -TemplateFile $templateFile 

错误: New-AzResourceGroupDeployment:17.35.18-错误:Code = InvalidTemplateDeployment;消息= 模板部署失败,并显示错误:“模板资源的授权失败” sql vasvtmcp42o3wko / Microsoft.Authorization / 11fd61df-2336-5b96-9b45-ffc7160df111'类型 “ Microsoft.Storage/storageAccounts/providers/roleAssignments”。客户'john.smith@mycompany。 对象ID为'1115f3de-834b-4d28-a48f-ecaad01e3111'的com'无权在范围'/ subscriptions / 1111111上执行操作'Microsoft.Authorization / roleAssignments / write' 11111111111111 / resourceGroups / my-rg / providers / Microsoft.Storage / storageAccounts / sqlvasvtmcp42o3wko / providers / Microsoft.Authorization / roleAssignments / 11111df -2336-5b96-9b45-ffc7160df168'。”。

2 个答案:

答案 0 :(得分:1)

我可以在具有贡献者权限的门户上成功创建逻辑服务器,但是无法弄清楚这里出了什么问题。

因为the template you used将为您启用Advanced data security,这将为您的sql服务器创建一个存储帐户和服务主体,然后将服务主体作为Storage Blob Data Contributor分配给该存储帐户自动角色。

enter image description here

要执行此操作,您的用户帐户必须是资源组或订阅中的OwnerUser Access Administrator。或者,您也可以创建一个Microsoft.Authorization/roleAssignments/write中带有actions的{​​{3}},然后该角色也可以做到这一点。

因此,总而言之,您有两种方法可以解决此问题。

1。导航至门户中的资源组或订阅-> Access control (IAM)-> Add->将您的用户帐户添加为上述角色,例如Owner,那么它将正常工作。查看详细信息custom role

2。部署模板时,请在enableADS文件中将falseazuredeploy.parameters.json指定。然后它将不会为您启用Advanced data security,您将可以通过模板使用Contributor创建sql服务器。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "serverName": {
            "value": "GEN-UNIQUE"
        },
        "administratorLogin": {
            "value": "GEN-UNIQUE"
        },
        "administratorLoginPassword": {
            "value": "GEN-PASSWORD"
        },
        "enableADS": {
            "value": "false"
        }
    }
}

答案 1 :(得分:0)

该错误清楚地说明了用于该操作的帐户没有正确的角色分配来执行该操作。

the client 'john.smith@mycompany. com' with object id '1115f3de-834b-4d28-a48f-ecaad01e3111' does not have permission to perform action 'Microsoft.Authorization/roleAssignments/write' at scope '/subscriptions/1111111 11111111111111

这意味着您的下一步应该是验证分配给该用户的角色分配,然后检查该角色是否确实有权执行Microsoft.Authorization/roleAssignments/write