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

Serverless Synapse Analytics外部登录异常:存在但不可见无法操作

Serverless Synapse Analytics AAD安全组外部登录异常问题排查与解决

问题现象

在Serverless Synapse Analytics实例的master数据库中执行CREATE LOGIN [sg-aad-name] FROM EXTERNAL PROVIDER;创建AAD安全组外部登录后,出现以下矛盾现象:

  • 登录未出现在sys.server_principals表中,执行SELECT SUSER_SID('sg-aad-name')无结果返回
  • 尝试ALTER、DROP该登录时,提示“它不存在或您没有权限”
  • 再次执行创建语句时,提示登录已存在
  • 尝试将其添加到服务器角色时,同样出现权限/不存在提示
  • 操作账号拥有SQL管理员权限,目标AAD安全组也具备对应权限,该问题出现在两个实例中,但另一个实例可正常工作

排查与解决步骤

1. 确认AAD安全组的名称准确性

确保使用的AAD安全组名称与Azure AD中组的**显示名称或用户主体名称(UPN)**完全一致,注意避免大小写、空格或特殊字符的输入错误。如果组名称包含特殊字符,需用方括号[]完整包裹,例如[sg-aad-name@contoso.com]。

2. 手动刷新AAD对象同步

Serverless Synapse与Azure AD的对象同步可能存在延迟,导致创建的登录未及时同步到sys.server_principals表。以AAD管理员身份在master数据库中执行以下命令手动刷新:

EXEC sp_refresh_azure_ad_objects;

执行完成后,再次查询sys.server_principals或SUSER_SID('sg-aad-name')验证是否可见。

3. 验证操作权限的类型

创建AAD外部登录必须使用Azure AD管理员身份执行,SQL本地管理员不具备创建AAD登录的权限。即使你拥有SQL管理员权限,若不是AAD管理员,可能会出现创建时的异常状态。确认当前操作账号是否为Synapse工作区配置的Azure AD管理员:

  • 登录Azure门户,进入目标Synapse工作区
  • 在左侧导航栏选择“SQL管理员”,检查“AAD管理员”是否为当前操作账号或所属的AAD组

4. 通过PowerShell清理残留登录记录

若存在同步异常导致的“幽灵登录”,可通过PowerShell命令查看并清理:

  1. 安装并登录Azure PowerShell模块:
    Install-Module -Name Az.Synapse -Force
    Connect-AzAccount
    
  2. 检查目标登录是否存在:
    Get-AzSynapseSqlLogin -WorkspaceName <你的Synapse工作区名称> -Name sg-aad-name
    
  3. 若存在则删除:
    Remove-AzSynapseSqlLogin -WorkspaceName <你的Synapse工作区名称> -Name sg-aad-name
    
  4. 重新执行CREATE LOGIN [sg-aad-name] FROM EXTERNAL PROVIDER;语句

5. 检查Synapse实例的AAD关联配置

确认异常实例与正常实例的Azure AD关联配置一致:

  • 检查Synapse工作区是否与目标AAD组属于同一个Azure AD租户
  • 确认工作区的“AAD管理员”配置未被修改或失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:55:49