sys.database_permissions (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse 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
AED 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 databaseAdventureWorksDW2022 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

Langkah berikutnya