使用成员类型AAD全局管理员账号在Azure Portal登录Azure SQL数据库失败
Azure SQL查询编辑器AAD登录报错
Login failed for user '<token-identified principal>' 问题解答 
问题成因
- Azure SQL Server的防火墙未开启「允许Azure服务和资源访问」规则,查询编辑器作为Azure原生服务的访问请求被拦截
- AAD管理员配置未正确生效,或者当前登录Azure Portal的账号与你设置的SQL Server AAD管理员账号不匹配
- 你的AAD账号开启了多重身份验证(MFA),预览版的查询编辑器对MFA场景的token解析存在兼容性问题
- 你的AAD账号为个人微软账号(如@outlook.com、@hotmail.com)或跨租户的访客账号,SQL数据库未为该外部主体创建对应的用户映射
- 你尝试登录的是用户数据库而非master库,AAD管理员的权限默认仅在master库生效,未同步到目标用户数据库
解决方案
调整防火墙规则
进入对应Azure SQL Server的「网络」配置页,开启「允许Azure服务和资源访问此服务器」选项,保存配置后等待2~3分钟重试登录。重新配置AAD管理员
在SQL Server的「Azure Active Directory」配置页,删除现有AAD管理员,重新搜索添加你当前登录Portal的AAD账号,保存配置后重试。适配MFA验证
如果账号开启了MFA,可优先使用SQL Server Management Studio(SSMS)工具,选择「Azure Active Directory - 通用且具有MFA」的验证方式登录操作;如需使用查询编辑器,可临时关闭账号的MFA策略后重试。手动添加数据库用户映射
使用SQL身份验证的管理员账号登录查询编辑器,切换到你要访问的目标数据库,执行如下命令:
执行完成后退出重新用AAD身份验证登录即可。-- 替换为你的AAD账号完整邮箱 CREATE USER [xxx@xxx.onmicrosoft.com] FROM EXTERNAL PROVIDER; -- 赋予数据库所有者权限,可根据实际需求调整角色 ALTER ROLE db_owner ADD MEMBER [xxx@xxx.onmicrosoft.com];
内容的提问来源于stack exchange,提问作者SuttyHoo
相关产品推荐
相关产品推荐

