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

如何在Azure SQL Server中获取DBO账户权限并解决AAD认证错误

解决SHOWPLAN权限授予及Azure Data Studio连接报错问题

问题背景

需要给指定账户授予SHOWPLAN权限,但日常用于修改数据库架构的账户无GRANT权限,推测dbo账户具备该权限但未留存登录信息,需通过Azure Portal获取拥有同等权限的登录方式。同时Azure当前权限文档与界面不符,使用Azure Data Studio连接时遇到以下身份验证错误:

Failed to authenticate the user in Active Directory (Authentication=ActiveDirectoryInteractive).
Error code 0xinvalid_request
AADSTS900021: Requested tenant identifier '00000000-0000-0000-0000-000000000000' is not valid. Tenant identifiers may not be an empty GUID.

旧版Azure Portal的解决方案已失效,数据库为10年前Azure刚推出时创建,曾因微软系统迁移出现过问题。

报错原因分析

该错误是由于连接请求中使用了空GUID作为租户ID,大概率是Azure Data Studio的连接配置未正确填写租户ID,或是早期创建的数据库所在租户存在遗留配置异常(结合过往系统迁移背景)。

解决步骤

一、获取高权限登录方式以授予SHOWPLAN权限

  • 检查Azure Portal的SQL服务器IAM权限
    进入目标SQL服务器的「访问控制(IAM)」页面,筛选拥有SQL Server Contributor或Owner角色的用户/服务主体,这类角色持有者可通过Azure Portal或Azure Data Studio以高权限连接数据库,执行权限授予操作。
  • 查找遗留SQL本地管理员账户
    在SQL服务器的「设置」->「服务器管理员」页面查看,早期创建的数据库可能保留了本地SQL管理员账户(非AAD身份),若存在可直接使用该账户连接数据库,执行权限授予语句。
  • 重置SQL管理员密码(需订阅级权限)
    若找不到现有高权限账户,可通过Azure CLI或PowerShell重置SQL管理员密码:
    # Azure CLI命令示例
    az sql server update --name <你的SQL服务器名> --resource-group <资源组名> --admin-password <新密码>
    
    重置后使用管理员账户连接数据库,运行GRANT SHOWPLAN TO [目标账户名];完成权限添加。
  • 配置AAD高权限用户
    若数据库启用了AAD身份验证,可在SQL服务器的「Azure Active Directory」->「管理员」页面,添加AAD用户为SQL管理员,该用户即可拥有db_owner权限,执行GRANT操作。

二、修复Azure Data Studio连接报错

  • 修正租户ID配置
    在ADS连接对话框中,确保「租户ID」字段填写正确(可从Azure Portal的「Azure Active Directory」->「属性」中获取租户ID),禁止留空或使用空GUID。
  • 切换AAD验证方式
    尝试使用「Active Directory - Universal with MFA」身份验证方式替代「Interactive」,部分早期遗留租户对交互式验证支持存在问题。
  • 清除AAD缓存
    进入ADS的「文件」->「首选项」->「设置」,搜索「Azure Active Directory」,执行「Clear Token Cache」操作后重新尝试连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:31:12