sys.server_role_members (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen ÖrneğiAnalytics Platform Sistemi (PDW)

Her sabit ve kullanıcı tanımlı sunucu rolünün her üyesi için bir satır döndürür.

Sütun adı Veri türü Description
role_principal_id int Server-Principal rolün kimliği.
member_principal_id int Server-Principal Üyenin kimliği.

Sunucu rol üyeliğini eklemek veya kaldırmak için (Transact-SQL) ifadesini ALTER SERVER ROLE kullanın.

Permissions

Giriş yapanlar, kendi sunucu rol üyeliklerini görebilir ve sabit sunucu rollerinin üyelerinin principal_id görebilir. Tüm sunucu rollerini görüntülemek için üyelik HER TANIM iznine veya VIEW sabit sunucu rolünde üyelik gerektirir.

Giriş yapanlar ayrıca sahip oldukları rollerin rol üyeliklerini de görebilir.

Azure SQL Veritabanı'de, sunucu rolü ###MS_DefinitionReader### üyeleri tüm katalog görünümlerini sorgulayabilir.

Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Examples

Bu bölümdeki örneklerde, Azure SQL Veritabanı'da sunucu düzeyindeki rollerle çalışma gösterilmektedir.

A. Sunucu-rol üyelerinin geri dönüş listesi

Aşağıdaki örnek, rollerin ve üyelerinin isimlerini ve kimliklerini geri getirir.

SELECT	roles.principal_id							AS RolePrincipalID
	,	roles.name									AS RolePrincipalName
	,	server_role_members.member_principal_id		AS MemberPrincipalID
	,	members.name								AS MemberPrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
    ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members 
    ON server_role_members.member_principal_id = members.principal_id  
;

Note

Azure SQL Veritabanı'nda sys.server_principals SQL oturum açma bilgileri katalog görünümünde kalıcı olmaz. Bu nedenle, Azure SQL Veritabanı'nda sunucu düzeyinde rol üyeliğini almak için katalog görünümünün sys.sql_logins katılması gerekir.

B. Azure SQL Veritabanı: Sunucu düzeyinde bir rolün üyesi olan tüm prensiplerin (SQL authentication) listelenmesi

Aşağıdaki sorgu, sys.server_role_members ve sys.sql_logins katalog görünümlerini kullanarak herhangi bir sabit sunucu düzeyinde rolün tüm üyelerini döndürür. Bu ifadenin sanal ana veritabanında çalıştırılması gerekir.

SELECT
		sql_logins.principal_id			AS MemberPrincipalID
	,	sql_logins.name					AS MemberPrincipalName
	,	roles.principal_id				AS RolePrincipalID
	,	roles.name						AS RolePrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
    ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.sql_logins AS sql_logins 
    ON server_role_members.member_principal_id = sql_logins.principal_id
;  
GO