在 SSMS 中,如果您按照路径 [Database] > Security > Schemas 并查看任何架构属性,您将拥有一个“权限”选项卡,其中列出了每个用户对该特定架构拥有的所有权限。
我想做一个查询,它给我与那个选项卡相同的输出。我尝试使用 sys.database_principals、database_permissions 和 sys_objects,但我无法检索链接到模式的权限。
在 SSMS 中,如果您按照路径 [Database] > Security > Schemas 并查看任何架构属性,您将拥有一个“权限”选项卡,其中列出了每个用户对该特定架构拥有的所有权限。
我想做一个查询,它给我与那个选项卡相同的输出。我尝试使用 sys.database_principals、database_permissions 和 sys_objects,但我无法检索链接到模式的权限。
使用List schema permissions接受的答案,这可能会给你你想要的。
此外,如果您在 SSMS 启动时需要确切的查询,它们的可读性不强,并且有几个用于获得 SSMS 中显示的结果。
在我的测试架构上打开权限时的基本查询:
为每个授予的权限产生一行
(用于授予的查询)
第二个查询,针对每个主体,在我的示例中为 bla
不是真正可读的结果
结合这两个查询,您可以获得更具可读性的内容
导致:
使用以下命令,我设法得到了更正确的响应:
问题是斯科特的回答我认为和之间的联系
sys.database_permissions
是sys.database_principals
不正确的。为什么要加入,major_id
因为那代表架构而不是受让人(委托人)。但感谢斯科特!你的回答很有帮助!