为何SQL中SA用户已禁用但syslogins表hasaccess字段仍显示1?
SA用户hasaccess=1但显示禁用的原因
- hasaccess列的含义不是“是否启用”:
syslogins中的hasaccess列值为1,仅代表这个SA登录名拥有当前数据库的访问权限,和登录本身是否被禁用完全是两回事。 - 禁用状态看另一个字段:登录名是否被禁用,得看
syslogins里的is_disabled列(值为1就是禁用),或者更推荐用新系统视图sys.server_principals里的is_disabled字段,这才对应SSMS界面里显示的X(禁用状态)。 - 两者互不影响:就算SA被禁用(is_disabled=1),只要它之前被授予了数据库访问权限,
hasaccess就会保持1。禁用只是阻止这个登录名发起连接,不会自动收回它已有的数据库权限。
内容的提问来源于stack exchange,提问作者G07
相关产品推荐
相关产品推荐

