sys.database_permissions (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) titik akhir analitik SQL di Microsoft Fabric Warehouse dalam database Microsoft Fabric SQL di Microsoft Fabric
Mengembalikan baris untuk setiap izin atau izin pengecualian kolom dalam database. Untuk kolom, ada baris untuk setiap izin yang berbeda dari izin tingkat objek yang sesuai. Jika izin kolom sama dengan izin objek yang sesuai, tidak ada baris untuk itu dan izin yang diterapkan adalah objek.
Penting
Izin tingkat kolom mengambil alih izin tingkat objek pada entitas yang sama.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
kelas | kecil | Mengidentifikasi kelas tempat izin ada. Untuk informasi selengkapnya, lihat sys.securable_classes (Transact-SQL). 0 = Database 1 = Objek atau Kolom 3 = Skema 4 = Prinsipal Database 5 = Assembly - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 6 = Jenis 10 = Koleksi Skema XML - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 15 = Jenis Pesan - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 16 = Kontrak Layanan - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 17 = Layanan - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 18 = Pengikatan Layanan Jarak Jauh - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 19 = Rute - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 23 =Katalog Teks Lengkap - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 24 = Kunci Konten - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 25 = Sertifikat - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 26 = Kunci Asimetris - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 29 = Daftar Henti Fulltext - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 31 = Daftar Properti Pencarian - Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. 32 = Kredensial Cakupan Database - Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru. 34 = Bahasa Eksternal - Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru. |
class_desc | nvarchar(60) | Deskripsi kelas tempat izin ada. DATABASE OBJECT_OR_COLUMN SKEMA DATABASE_PRINCIPAL RAKITAN TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT LAYANAN REMOTE_SERVICE_BINDING RUTE FULLTEXT_CATALOG SYMMETRIC_KEYS SERTIFIKAT ASYMMETRIC_KEY DAFTAR HENTI TEKS PENUH DAFTAR PROPERTI PENCARIAN DATABASE SCOPED CREDENTIAL BAHASA EKSTERNAL |
major_id | int | ID hal di mana izin ada, ditafsirkan sesuai dengan kelas. Biasanya, major_id jenis ID sederhana yang berlaku untuk apa yang diwakili kelas. 0 = Database itu sendiri >0 = ID Objek untuk objek pengguna <0 = ID Objek untuk objek sistem |
minor_id | int | ID sekunder dari hal yang izinnya ada, ditafsirkan sesuai dengan kelas. Seringkali, minor_id adalah nol, karena tidak ada subkataan yang tersedia untuk kelas objek. Jika tidak, itu adalah ID Kolom tabel. |
grantee_principal_id | int | ID utama database tempat izin diberikan. |
grantor_principal_id | int | ID utama database pemberi izin ini. |
jenis | karakter(4) | Jenis izin database. Untuk daftar jenis izin, lihat tabel berikutnya. |
permission_name | nvarchar(128) | Nama izin. |
state | karakter(1) | Status izin: D = Tolak R = Cabut G = Grant W = Grant With Grant Option |
state_desc | nvarchar(60) | Deskripsi status izin: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Izin Database
Jenis izin berikut dimungkinkan.
Jenis izin | Nama izin | Berlaku untuk dapat diamankan |
---|---|---|
AADS | MENGUBAH SESI PERISTIWA DATABASE APA PUN | DATABASE |
AAMK | UBAH MASKER APA PUN | DATABASE |
AEDS | ALTER ANY EXTERNAL DATA SOURCE | DATABASE |
AEFF | ALTER ANY EXTERNAL FILE FORMAT | DATABASE |
AL | ALTER | PERAN APLIKASI, PERAKITAN, KUNCI ASIMETRIS, SERTIFIKAT, KONTRAK, DATABASE, KATALOG TEKS LENGKAP, JENIS PESAN, OBJEK, PENGIKATAN LAYANAN JARAK JAUH, PERAN, RUTE, SKEMA, LAYANAN, KUNCI SIMETRIS, PENGGUNA, KOLEKSI SKEMA XML |
ALAK | MENGUBAH KUNCI ASIMETRIS APA PUN | DATABASE |
ALAR | MENGUBAH PERAN APLIKASI APA PUN | DATABASE |
SAYANGNYA | MENGUBAH RAKITAN APA PUN | DATABASE |
ALCF | MENGUBAH SERTIFIKAT APA PUN | DATABASE |
ALD | MENGUBAH RUANG DATA APA PUN | DATABASE |
ALED | MENGUBAH PEMBERITAHUAN PERISTIWA DATABASE APA PUN | DATABASE |
ALFT | MENGUBAH KATALOG FULLTEXT APA PUN | DATABASE |
ALMT | UBAH JENIS PESAN APA PUN | DATABASE |
ALRL | MENGUBAH PERAN APA PUN | DATABASE |
ALRT | MENGUBAH RUTE APA PUN | DATABASE |
ALSB | MENGUBAH PENGIKATAN LAYANAN JARAK JAUH APA PUN | DATABASE |
ALSC | MENGUBAH KONTRAK APA PUN | DATABASE |
ALSK | MENGUBAH KUNCI SIMETRIS APA PUN | DATABASE |
ALSM | ALTER ANY SCHEMA | DATABASE |
ALSV | MENGUBAH LAYANAN APA PUN | DATABASE |
ALTG | MENGUBAH PEMICU DDL DATABASE APA PUN | DATABASE |
ALUS | MENGUBAH PENGGUNA APA PUN | DATABASE |
AUTENTIKASI | MENGOTENTIKASI | DATABASE |
BADB | DATABASE CADANGAN | DATABASE |
BALO | LOG CADANGAN | DATABASE |
CL | CONTROL | PERAN APLIKASI, PERAKITAN, KUNCI ASIMETRIS, SERTIFIKAT, KONTRAK, DATABASE, KATALOG TEKS LENGKAP, JENIS PESAN, OBJEK, PENGIKATAN LAYANAN JARAK JAUH, PERAN, RUTE, SKEMA, LAYANAN, KUNCI SIMETRIS, JENIS, PENGGUNA, KOLEKSI SKEMA XML |
CO | MENGHUBUNG | DATABASE |
CORP | SAMBUNGKAN REPLIKASI | DATABASE |
CP | TITIK PEMERIKSAAN | DATABASE |
KARANG | CREATE AGGREGATE | DATABASE |
CRAK | MEMBUAT KUNCI ASIMETRIS | DATABASE |
CRAS | MEMBUAT RAKITAN | DATABASE |
CRCF | BUAT SERTIFIKAT | DATABASE |
CRDB | BUAT DATABASE | DATABASE |
CRDF | BUAT DEFAULT | DATABASE |
CRED | MEMBUAT PEMBERITAHUAN PERISTIWA DDL DATABASE | DATABASE |
CRFN | CREATE FUNCTION | DATABASE |
CRFT | BUAT KATALOG FULLTEXT | DATABASE |
CRMT | MEMBUAT JENIS PESAN | DATABASE |
CRPR | CREATE PROCEDURE | DATABASE |
CRQU | BUAT ANTREAN | DATABASE |
CRRL | BUAT PERAN | DATABASE |
CRRT | BUAT RUTE | DATABASE |
CRRU | BUAT ATURAN | DATABASE |
CRSB | MEMBUAT PENGIKATAN LAYANAN JARAK JAUH | DATABASE |
CRSC | BUAT KONTRAK | DATABASE |
CRSK | MEMBUAT KUNCI SIMETRIS | DATABASE |
CRSM | CREATE SCHEMA | DATABASE |
CRSN | MEMBUAT SINONIM | DATABASE |
CRSO | Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru. BUAT URUTAN |
DATABASE |
CRSV | BUAT LAYANAN | DATABASE |
CRTB | CREATE TABLE | DATABASE |
CRTY | CREATE TYPE | DATABASE |
CRVW | BUAT TAMPILAN | DATABASE |
CRXS | Berlaku untuk: SQL Server 2008 (10.0.x) dan versi yang lebih baru. MEMBUAT KOLEKSI SKEMA XML |
DATABASE |
DABO | ADMINISTER DATABASE BULK OPERATIONS | DATABASE |
DL | DELETE | DATABASE, OBJEK, SKEMA |
EAES | JALANKAN SKRIP EKSTERNAL APA PUN | DATABASE |
EX | EXECUTE | RAKITAN, DATABASE, OBJEK, SKEMA, JENIS, KOLEKSI SKEMA XML |
IM | MENIRU | USER |
IN | INSERT | DATABASE, OBJEK, SKEMA |
RC | TERIMA | OBJECT |
RF | REFERENCES | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
SL | SELECT | DATABASE, OBJEK, SKEMA |
SN | KIRIM | LAYANAN |
SPLN | SHOWPLAN | DATABASE |
SUQN | BERLANGGANAN PEMBERITAHUAN KUERI | DATABASE |
TO | AMBIL KEPEMILIKAN | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
UP | UPDATE | DATABASE, OBJEK, SKEMA |
VW | MELIHAT DEFINISI | PERAN APLIKASI, PERAKITAN, KUNCI ASIMETRIS, SERTIFIKAT, KONTRAK, DATABASE, KATALOG TEKS LENGKAP, JENIS PESAN, OBJEK, PENGIKATAN LAYANAN JARAK JAUH, PERAN, RUTE, SKEMA, LAYANAN, KUNCI SIMETRIS, JENIS, PENGGUNA, KOLEKSI SKEMA XML |
VWCK | LIHAT DEFINISI KUNCI ENKRIPSI KOLOM APA PUN | DATABASE |
VWCM | LIHAT DEFINISI KUNCI MASTER KOLOM APA PUN | DATABASE |
VWCT | LIHAT PELACAKAN PERUBAHAN | TABEL, SKEMA |
VWD | TAMPILKAN STATUS DATABASE | DATABASE |
Izin
Setiap pengguna dapat melihat izin mereka sendiri. Untuk melihat izin untuk pengguna lain, memerlukan VIEW DEFINITION, ALTER ANY USER, atau izin apa pun pada pengguna. Untuk melihat peran yang ditentukan pengguna, memerlukan UBAH PERAN APA PUN, atau keanggotaan dalam peran (seperti publik).
Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh
J. 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
INNER 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 ke sys.objects dan sys.schemas untuk mencantumkan izin yang diberikan atau ditolak untuk objek skema tertentu.sys.database_permissions
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
C. Mencantumkan izin untuk objek tertentu
Anda bisa menggunakan contoh sebelumnya untuk mengkueri izin khusus untuk satu objek database.
Misalnya, pertimbangkan izin terperinci berikut yang diberikan kepada pengguna test
database dalam database AdventureWorksDW2022
sampel :
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Temukan izin terperinci yang ditetapkan ke dbo.vAssocSeqOrders
:
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
Mengembalikan output:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Lihat juga
- Securable
- Hierarki Izin (Mesin Database)
- Tampilan Katalog Keamanan (Transact-SQL)
- Tampilan Katalog (Transact-SQL)