重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 69|回复: 0
打印 上一主题 下一主题

sqlserver 中 sys.syslogins与 sys.sql_logins 区别

[复制链接]
跳转到指定楼层
楼主
发表于 2026-3-25 15:46:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 郑全 于 2026-3-25 15:50 编辑

这两个都是查登录名(Login)的系统视图,但级别、用途、兼容性完全不同,我用最直白的方式给你讲透。



一句话核心区别
  • sys.syslogins
    旧版兼容视图(SQL 2000 遗留)
    服务器级别,能查所有登录名(Windows + SQL 认证)
    不推荐正式使用
  • sys.sql_logins
    新版官方标准视图
    只查 SQL Server 身份验证的登录名(密码登录)
    字段更全、更安全、官方推荐


详细对比(一看就懂)
1. sys.syslogins
  • 来源:旧系统表 syslogins 包装而来
  • 范围:所有登录名
    • Windows 登录名
    • Windows 组登录名
    • SQL 身份验证登录名
  • 类型:兼容性视图
  • 缺点:字段少、信息旧、未来可能废弃
  • 用途:老脚本兼容

查询示例:

SELECT * FROM sys.syslogins



2. sys.sql_logins
  • 来源:新版目录视图
  • 范围:仅 SQL 身份验证登录名(带密码的账号)
    ✅ sa
    ✅ 你用 CREATE LOGIN 创建的密码账号
  • 类型:官方推荐
  • 优点:
    • 字段多(密码策略、过期状态、是否锁定等)
    • 安全、准确
    • 新版本一直支持

查询示例:

SELECT * FROM sys.sql_logins



最关键区别(必记)

特性
sys.syslogins
sys.sql_logins
能查 Windows 登录✅ 能❌ 不能
能查 SQL 密码登录✅ 能✅ 能
是否新版推荐❌ 旧版✅ 是
密码安全字段❌ 无✅ 丰富
未来兼容性⚠️ 可能弃用✅ 长期支持




你应该用哪个?
✅ 日常开发、DBA 运维 → 一律用 sys.sql_logins



实用查询(直接复制用)
查所有登录名(含 Windows)
SELECT * FROM sys.syslogins


只查 SQL 密码登录(推荐)
SELECT name, is_policy_checked, is_expiration_checked, is_locked

FROM sys.sql_logins


查 sa 账号状态
sqlSELECT * FROM sys.sql_logins WHERE name = 'sa'




总结
  • sys.syslogins = 旧版 → 查所有登录(Windows+SQL)
  • sys.sql_logins = 新版 → 只查 SQL 密码登录(你创建的账号)
  • 优先用 sys.sql_logins

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 14:25 , Processed in 0.236559 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表