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

咨询:如何查询每个SQL用户所使用的身份验证模式

查询SQL Server用户身份验证模式

以下是符合你需求的SQL查询语句,可直接输出指定格式的结果:

SELECT 
    name + ' - 身份验证模式 - ' + 
    CASE 
        WHEN authentication_type = 1 THEN 'Windows'
        WHEN authentication_type = 2 THEN 'SQL Login'
        ELSE '其他'
    END AS 验证模式信息
FROM sys.server_principals
WHERE type IN ('S', 'U') -- S=SQL登录, U=Windows登录,过滤非目标类型的安全主体
ORDER BY name;

语句说明:

  • 依赖sys.server_principals系统视图:该视图存储SQL Server实例级所有安全主体的核心信息,包括登录名、身份验证类型等。
  • authentication_type字段映射:1对应Windows身份验证,2对应SQL Server身份验证(即SQL Login)。
  • type筛选逻辑:S代表SQL登录账户,U代表Windows登录账户,通过此条件仅返回你关注的两类用户,排除系统角色、证书映射账户等无关主体。
  • 字符串拼接:通过+运算符将用户名、固定文本和验证类型组合成你需要的输出格式。

额外建议:

  • 若需排除系统内置登录账户(如sa、NT SERVICE开头的账户),可在WHERE子句中补充过滤条件:
    AND name NOT LIKE 'NT SERVICE\%' 
    AND name NOT LIKE 'NT AUTHORITY\%'
    AND name != 'sa'
    
  • 如果需要关联数据库级用户和登录名的对应关系,可结合sys.database_principals视图进行关联查询,但仅针对身份验证模式需求,服务器级登录名的信息已足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:15:48