1

我想获得数据库角色的扩展属性。我可以使用以下命令为用户获取所有扩展属性的列表:

use db;
SELECT * FROM fn_listextendedproperty (null, 'user', null, default, default, default, default)

但我无法为角色找到正确的级别类型

通过使用以下命令,我可以看到角色'class是 4,它们major id是 10。

SELECT * FROM sys.extended_properties 

所以我可以用下面的命令得到我正在寻找的东西:

SELECT * FROM sys.extended_properties WHERE class = 4 AND major_id = 10

但我更喜欢用fn_listextendedproperty函数获取列表。

4

1 回答 1

1

sys.extended_properties (Transact-SQL)

major_id:扩展属性所在项目的 ID,根据其类进行解释。

major_id = 10principal_id的角色也是如此sys.database_principals

并且class = 4是数据库主体、用户和角色。

您使用的第一个查询fn_listextendedproperty应返回包含两种类型的用户和角色的列表obj_type = USER

您需要使用sys.extended_properties和加入来sys.database_principals弄清楚什么是用户以及什么是角色。

于 2015-07-27T09:51:21.743 回答