You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bicep配置Azure SQL用户分配托管身份管理员报错排查

解决Azure SQL Server设置用户分配托管身份为AD管理员的错误

问题根源

你遇到的Invalid value given for parameter ExternalAdministraorLoginSid错误,主要来自Bicep代码中的几处关键错误:

  1. 拼写错误:administraorType应为administratorType,参数名不正确会导致解析失败
  2. principalType错误:用户分配托管身份属于Azure AD中的ServicePrincipal类型,而非Group
  3. Sid值错误:你使用了托管身份的Client ID,但实际需要填写的是它的Object ID(principalId)

修正后的Bicep代码

如果已创建用户分配托管身份资源,推荐直接引用其属性而非硬编码值,避免手动复制错误:

// 假设已定义用户分配托管身份资源
resource userAssignedMI 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
  name: 'userAssignedManagedIdName'
  location: location
}

resource sqlserver 'Microsoft.Sql/servers@2021-11-01-preview' = {
  name: 'sqlserver${uniqueString(resourceGroup().id)}'
  location: location
  properties: {
    // 若启用azureADOOnlyAuthentication,本地管理员账号可省略
    administratorLogin: sqlAdministratorLogin
    administratorLoginPassword: sqlAdministratorPassword
    version: '12.0'
    administrators: {
      administratorType: 'ActiveDirectory'
      principalType: 'ServicePrincipal'
      azureADOOnlyAuthentication: true
      login: userAssignedMI.name
      sid: userAssignedMI.properties.principalId
      tenantId: userAssignedMI.properties.tenantId
    }
  }
}

关键说明

  • principalType:用户分配托管身份的本质是Azure AD服务主体,必须设置为ServicePrincipal
  • sid:对应托管身份的principalId(在Azure门户托管身份属性页的"对象ID"字段),而非"客户端ID"
  • azureADOOnlyAuthentication:若启用该选项,将禁用SQL本地管理员登录,仅允许Azure AD身份验证

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:02:19