首页 > 解决方案 > ARM 的部署:模板资源“sql”的授权失败

问题描述

我尝试使用 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 - 错误:代码=无效模板部署;消息=模板部署失败并出现错误:'Microsoft.Storage/storageAccounts/providers/roleAssignments' 类型的模板资源 'sql vasvtmcp42o3wko/Microsoft.Authorization/11fd61df-2336-5b96-9b45-ffc7160df111' 的授权失败。客户'john.smith@mycompany。com' 对象 ID 为 '1115f3de-834b-4d28-a48f-ecaad01e3111' 无权在范围 '/subscriptions/1111111 11111111111111/resourceGroups/my-rg/providers/Microsoft 执行操作 'Microsoft.Authorization/roleAssignments/write' .Storage/storageAccounts/sqlvasvtmcp42o3wko/providers/Microsoft.Authorization/roleAssignments/11111df -2336-5b96-9b45-ffc7160df168'.'。

标签: azure-resource-manager

解决方案


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

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

在此处输入图像描述

要执行此操作,您的用户帐户需要是资源组OwnerUser Access Administrator订阅中的或。或者您也可以创建一个自定义角色,其中包含Microsoft.Authorization/roleAssignments/writeactions那么该角色也可以做到这一点。

因此,总而言之,您有两种选择来解决此问题。

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

2.部署模板时,在文件中指定enableADSwith 。然后它不会为您启用,您将能够使用模板创建 sql server。falseazuredeploy.parameters.jsonAdvanced data securityContributor

{
    "$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"
        }
    }
}

推荐阅读