我正在尝试一个简单的查询来列出Windows组及其登录。如您所见,我的第二个校长似乎没有相应的登录。
但是,当一个sys_admin运行相同的代码时,他会得到'MyLogin2Name‘而不是我看到的NULL。
有人知道这是怎么回事吗?它让我们都在挠头!
USE myDB;
SELECT
p.principal_id, p.[name], sl.[name]
FROM sys.database_principals p
LEFT OUTER JOIN sys.syslogins sl
ON p.sid = sl.sid
WHERE p.[type] in ('G');
发布于 2020-04-08 08:05:39
当sys_admin运行完全相同的代码时,他会得到“MyLogin2Name”
一个系统管理员可以看到所有的登录。普通用户不能。这种行为记录在sys.server_principals
中,它是登录的非遗留视图:
权限 任何登录都可以看到自己的登录名、系统登录和固定的服务器角色。若要查看其他登录,需要更改任何登录或登录上的权限。若要查看用户定义的服务器角色,需要更改任何服务器角色或该角色的成员资格. 目录视图中元数据的可见性仅限于用户拥有或授予用户某种权限的安全性。有关更多信息,请参见元数据可见性配置。
https://stackoverflow.com/questions/61104285
复制相似问题