sys.database_principals (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan baris untuk setiap prinsip keamanan dalam database SQL Server.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Deskripsi kolom
Nama kolom | Jenis data | Deskripsi |
---|---|---|
nama | nama sysname | Nama utama, unik dalam database. |
principal_id | int | ID utama, unik dalam database. |
jenis | karakter(1) | Jenis utama: A = Peran aplikasi C = Pengguna dipetakan ke sertifikat E = Pengguna eksternal dari ID Microsoft Entra G = Grup Windows K = Pengguna dipetakan ke kunci asimetris R = Peran database S = Pengguna SQL U = Pengguna Windows X = Grup eksternal dari grup atau aplikasi Microsoft Entra |
type_desc | nvarchar(60) | Deskripsi jenis utama. APPLICATION_ROLE CERTIFICATE_MAPPED_USER EXTERNAL_USER WINDOWS_GROUP ASYMMETRIC_KEY_MAPPED_USER DATABASE_ROLE SQL_USER WINDOWS_USER EXTERNAL_GROUPS |
default_schema_name | nama sysname | Nama yang akan digunakan ketika nama SQL tidak menentukan skema. Null untuk prinsipal bukan tipe S, U, atau A. |
create_date | datetime | Waktu di mana prinsipal dibuat. |
modify_date | datetime | Waktu di mana prinsipal terakhir dimodifikasi. |
owning_principal_id | int | ID prinsipal yang memiliki prinsipal ini. Semua Peran Database tetap dimiliki oleh dbo secara default. |
Sid | varbinary(85) | SID (Pengidentifikasi Keamanan) dari prinsipal. NULL untuk SKEMA SYS dan INFORMASI. |
is_fixed_role | bit | Jika 1, baris ini mewakili entri untuk salah satu peran database tetap: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter. |
authentication_type | int | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Menandakan jenis autentikasi. Berikut ini adalah nilai yang mungkin dan deskripsinya. 0 : Tidak ada autentikasi 1 : Autentikasi instans 2 : Autentikasi database 3 : Autentikasi Windows 4 : Autentikasi Microsoft Entra |
authentication_type_desc | nvarchar(60) | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Deskripsi jenis autentikasi. Berikut ini adalah nilai yang mungkin dan deskripsinya. NONE : Tidak ada autentikasiINSTANCE : Autentikasi instansDATABASE : Autentikasi databaseWINDOWS : Autentikasi WindowsEXTERNAL : Autentikasi Microsoft Entra |
default_language_name | nama sysname | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Menandakan bahasa default untuk prinsip ini. |
default_language_lcid | int | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Menandakan LCID default untuk perwakilan ini. |
allow_encrypted_value_modifications | bit | Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, SQL Database. Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna menyalin data secara massal yang dienkripsi menggunakan Always Encrypted, antara tabel atau database, tanpa mendekripsi data. Defaultnya adalah NONAKTIF. |
Keterangan
Properti PasswordLastSetTime tersedia di semua konfigurasi SQL Server yang didukung, tetapi properti lain hanya tersedia ketika SQL Server berjalan di Windows Server 2003 atau yang lebih baru dan CHECK_POLICY dan CHECK_EXPIRATION diaktifkan. Lihat Kebijakan Kata Sandi untuk informasi selengkapnya. Nilai principal_id dapat digunakan kembali jika prinsipal telah dihilangkan dan oleh karena itu tidak dijamin akan terus meningkat.
Izin
Setiap pengguna dapat melihat nama pengguna mereka sendiri, pengguna sistem, dan peran database tetap. Untuk melihat pengguna lain, memerlukan ALTER ANY USER, atau izin pada pengguna. Untuk melihat peran yang ditentukan pengguna, memerlukan UBAH PERAN APA PUN, atau keanggotaan dalam peran tersebut.
Contoh
A: Mencantumkan semua izin prinsipal database
Kueri berikut mencantumkan izin yang secara eksplisit diberikan atau ditolak untuk prinsipal database.
Penting
Izin peran database tetap tidak muncul di sys.database_permissions. Oleh karena itu, prinsipal database mungkin memiliki izin tambahan yang tidak tercantum di sini.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
B: Mencantumkan izin pada objek skema dalam database
Kueri berikut menggabungkan sys.database_principals dan sys.database_permissions ke sys.objects dan sys.schemas untuk mencantumkan izin yang diberikan atau ditolak untuk objek skema tertentu.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Mencantumkan semua izin prinsipal database
Kueri berikut mencantumkan izin yang secara eksplisit diberikan atau ditolak untuk prinsipal database.
Penting
Izin peran database tetap tidak muncul di sys.database_permissions
. Oleh karena itu, prinsipal database mungkin memiliki izin tambahan yang tidak tercantum di sini.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
D: Mencantumkan izin pada objek skema dalam database
Kueri berikut bergabung sys.database_principals
dan sys.database_permissions
ke sys.objects
dan sys.schemas
untuk mencantumkan izin yang diberikan atau ditolak untuk objek skema tertentu.
SELECT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;
Lihat Juga
Prinsipal (Mesin Database)
sys.server_principals (T-SQL)
Tampilan Katalog Keamanan (Transact-SQL)
Pengguna Database Mandiri - Membuat Database Anda Portabel
Menyambungkan ke Azure SQL dengan autentikasi Microsoft Entra