sys.server_role_members (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Mengembalikan satu baris untuk setiap anggota dari setiap peran server tetap dan yang ditentukan pengguna.

Nama kolom Jenis data Deskripsi
role_principal_id int ID Server-Principal peran.
member_principal_id int ID Server-Principal anggota.

Untuk menambahkan atau menghapus keanggotaan peran server, gunakan pernyataan ALTER SERVER ROLE (Transact-SQL ).

Izin

Login dapat melihat keanggotaan peran server mereka sendiri dan dapat melihat principal_id anggota peran server tetap. Untuk melihat semua keanggotaan peran server memerlukan izin VIEW ANY DEFINITION atau keanggotaan dalam peran server tetap securityadmin .

Login juga dapat melihat keanggotaan peran peran yang mereka miliki.

Di Azure SQL Database, anggota peran server ##MS_DefinitionReader## dapat mengkueri semua tampilan katalog.

Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

Contoh di bagian ini menunjukkan cara bekerja dengan peran tingkat server dalam Azure SQL Database.

J. Mengembalikan daftar anggota peran server

Contoh berikut mengembalikan nama dan ID peran dan anggotanya.

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  
;

Catatan

Di Azure SQL Database, login SQL tidak bertahan dalam sys.server_principals tampilan katalog. Oleh karena itu, untuk mengambil keanggotaan peran tingkat server di Azure SQL Database, tampilan sys.sql_logins katalog perlu digabungkan.

B. Azure SQL Database: Mencantumkan semua prinsipal (autentikasi SQL) yang merupakan anggota peran tingkat server

Pernyataan berikut mengembalikan semua anggota dari setiap peran tingkat server tetap menggunakan tampilansys.server_role_members dan sys.sql_logins katalog. Pernyataan ini harus dijalankan dalam database master virtual.

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  

Lihat Juga

Tampilan Katalog (Transact-SQL)
Tampilan Katalog Keamanan (Transact-SQL)
Peran Tingkat Server
Prinsipal (Mesin Database)