Returns one row for each member of each database role. Database users, application roles, and other database roles can be members of a database role. To add members to a role, use the ALTER ROLE statement with the
ADD MEMBER option. Join with sys.database_principals to return the names of the
|Column name||Data type||Description|
|role_principal_id||int||Database principal ID of the role.|
|member_principal_id||int||Database principal ID of the member.|
Any user can view their own role membership. To view other role memberships requires membership in the
db_securityadmin fixed database role or
VIEW DEFINITION on the database.
The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. For more information, see Metadata Visibility Configuration.
The following query returns the members of the database roles.
SELECT DP1.name AS DatabaseRoleName, isnull (DP2.name, 'No members') AS DatabaseUserName FROM sys.database_role_members AS DRM RIGHT OUTER JOIN sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id LEFT OUTER JOIN sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id WHERE DP1.type = 'R' ORDER BY DP1.name;