假设我想查看谁对我的数据库中的某个表拥有权限。由于我的无知,我相信 GUI 可以给我所有的答案。因此,我在 SSMS 中打开数据库并导航到我想要的表。我右键单击它并转到“属性”。从这里,我导航到“权限”。我看到这需要我指定一个用户,所以我指定一个Windows用户。我们称他们为
FooCorp\x12345
。在“显式”菜单上,我看到他们根本没有权限。因此,我单击“有效”菜单,然后收到此错误。
无法获取有关 Windows NT 组/用户“FooCorp\x12345”的信息,错误代码 0x5
我真的不关心修复这个错误。相反,我想知道:SSMS 使用什么过程、脚本或其他对象来(未能)获取“有效”权限?
一些评论正确地建议检查 SQL Server Profiler。据报道,脚本是:
EXECUTE AS LOGIN = N'FooCorp\x12345';
SELECT
permission_name AS [Permission]
,subentity_name as [Column]
FROM fn_my_permissions(N'[dbo].[tblTest]', N'OBJECT')
ORDER BY permission_name, subentity_name;
REVERT;