我想获得数据库角色的扩展属性。我可以使用此命令获取用户的所有扩展属性的列表:
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
函数获取列表。
答案 0 :(得分:1)
来自sys.extended_properties (Transact-SQL)
major_id :扩展属性所在的项目的ID, 根据班级解释。
所以major_id = 10
是principal_id
中角色的sys.database_principals
。
class = 4
是数据库主体,用户和角色。
使用fn_listextendedproperty
的第一个查询应返回两个类型的obj_type = USER
用户和角色的列表。
您需要使用sys.extended_properties
并加入sys.database_principals
以确定用户是什么以及角色是什么。