sys.server_role_members (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance Analytics 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)