选择角色的扩展属性

时间:2015-07-27 08:38:19

标签: sql-server sql-server-2012 extended-properties

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

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

但我无法为角色找到正确的level types

使用以下命令,我可以看到角色“class为4,major id为10。”

SELECT * FROM sys.extended_properties 

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

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

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

1 个答案:

答案 0 :(得分: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以确定用户是什么以及角色是什么。