SYSLOGIN不返回所有行

时间:2018-10-25 09:16:25

标签: sql sql-server tsql permissions

我有一个假设,一些登录用户在某处有不正确的权限,即2个查询:

--correct, return all rows
EXECUTE AS LOGIN = 'USER1'
GO
SELECT * FROM syslogins
GO
REVERT
GO

--incorrect, return only 2 rows
EXECUTE AS LOGIN = 'USER2'
GO
SELECT * FROM syslogins
GO
REVERT
GO

总体而言,这两个用户与我所能找到的完全相同。在哪里可以找到不同的权限以及如何解决,以便USER2还能查看syslogins中的所有行?

Metadata Visibility Configuration起尝试执行以下查询,但未返回任何结果。

SELECT name, object_id  
FROM sys.tables  
WHERE name = 'syslogins';  
GO 

来自sys.server_principals (Transact-SQL)的用户尝试使用以下查询代替SELECT * FROM syslogins,但USER1作为USER2仍然有更多结果可用

SELECT *
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe ON pe.grantee_principal_id = pr.principal_id  

grant view definition to USER2也没有对大量查询进行任何更改

0 个答案:

没有答案