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

如何移除Azure SQL Server自动生成的CloudSA管理员登录账户?

自动化移除Azure SQL Server自动生成的CloudSA登录账户方案

步骤1:部署不含本地管理员的SQL Server(Bicep)

先通过Bicep部署SQL Server,不指定administratorLogin和administratorLoginPassword,同时设置administratorType为ActiveDirectory:

resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = {
  name: 'your-sql-server-name'
  location: resourceGroup().location
  properties: {
    administratorType: 'ActiveDirectory'
    minimalTlsVersion: '1.2'
    publicNetworkAccess: 'Enabled'
  }
}

步骤2:启用Azure AD Only Authentication

通过AZ CLI强制启用AD唯一身份验证,此时所有本地登录账户会被自动禁用:

az sql server ad-only-auth enable --resource-group <你的资源组名称> --name <你的SQL Server名称>

步骤3:自动识别并删除CloudSA登录账户

由于CloudSA开头的登录名带随机后缀,先查询获取该账户名,再执行删除操作:

# 查询获取CloudSA开头的登录名
LOGIN_NAME=$(az sql server execute-query --resource-group <你的资源组名称> --name <你的SQL Server名称> --query-text "SELECT name FROM sys.sql_logins WHERE name LIKE 'CloudSA%'" --output tsv)

# 执行删除命令
az sql server execute-query --resource-group <你的资源组名称> --name <你的SQL Server名称> --query-text "DROP LOGIN [$LOGIN_NAME]"

注意:执行该命令的账号必须拥有SQL Server的Azure AD管理员权限,可临时指定一个AD账号作为管理员,完成删除后再替换为目标管理单元组。

步骤4:分配管理单元组的管理员权限

待目标管理单元组的SID创建完成后,通过AZ CLI将其设置为SQL Server的Azure AD管理员:

az sql server ad-admin create --resource-group <你的资源组名称> --server-name <你的SQL Server名称> --display-name <管理单元组显示名> --object-id <管理单元组对象ID>

关键注意事项

  • 整个流程无需部署额外资源,完全依赖Azure原生CLI命令和Bicep完成
  • 启用AD Only Authentication后,本地登录账户会被禁用,删除操作不会影响AD身份验证流程
  • 脚本需按顺序执行:部署SQL Server → 启用AD Only → 删除CloudSA登录 → 添加管理单元组管理员

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:28:33