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

SSMS多版本用户映射加载缓慢/无响应问题排查求助

SSMS加载Login用户映射超时/无响应问题求助

在SSMS 14、18和19版本中,加载任意Login的User Mapping时耗时极长,有时需一小时,甚至完全无法加载并出现无响应情况。

已尝试以下操作:

  • 确认问题与AD login或SQL login类型无关
  • 将SQL Server版本从2016升级至2022
  • 将SSMS版本从14升级至18再到19
  • 检查SQL阻塞情况(未发现阻塞)
  • 测试多个不同Login(均存在此问题)
  • 当前SQL实例包含25个数据库,总计约50个Login

此问题导致无需编写SQL查询的用户安全和数据库映射管理工作异常困难,恳请支持与指导!


编辑1:定位问题根源查询

通过SQL Trace,找到导致问题的查询如下:

USE [database_name]
SELECT
u.name AS [Name],
CAST(CASE dp.state WHEN N'G' THEN 1 WHEN 'W' THEN 1 ELSE 0 END AS bit) AS [HasDBAccess],
ISNULL(u.default_schema_name,N'') AS [DefaultSchema]
FROM
sys.database_principals AS u
LEFT OUTER JOIN sys.database_permissions AS dp ON dp.grantee_principal_id = u.principal_id 
and dp.type = @_msparam_0
WHERE
(u.type in ('U', 'S', 'G', 'C', 'K' ,'E', 'X'))
and
(ISNULL(suser_sname(u.sid),N'')=@_msparam_1)

该查询在选择数据库后运行,是第4个执行的查询。


编辑2:锁定问题代码段

具体是以下代码部分导致问题:

and
(ISNULL(suser_sname(u.sid),N''')=@_msparam_1)

编辑3:确认函数为罪魁祸首

经过对不同数据库和Login的测试,确定是suser_sname函数导致的问题——该函数执行后会挂起,永远无法完成,只能强制关闭SQL。恳请进一步指导,谢谢!


编辑4:补充环境上下文

问题发生在独立域的DEV环境,该环境用于还原生产数据库,还原时会根据需要将关联的SQL login更新为适配DEV域的版本。
曾怀疑sys.database_principals中SID不匹配的孤立SQL login导致问题,确实存在部分孤立登录,但使用sp_change_users_login修复后问题仍存在。


内容的提问来源于stack exchange,提问作者L.Newell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:43:11