Aracılığıyla paylaş


sys.database_permissions (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Veritabanındaki her izin veya sütun özel durum izni için bir satır döndürür. Sütunlar için, her izin için ilgili nesne düzeyi izninden farklı bir satır vardır. Sütun izni karşılık gelen nesne izniyle aynıysa, bunun için bir satır yoktur ve uygulanan izin nesnenin iznidir.

Important

Sütun düzeyi izinler, aynı varlık üzerindeki nesne düzeyi izinlerini geçersiz kılar.

Sütun adı Veri türü Description
class tinyint üzerinde iznin bulunduğu sınıfı tanımlar. Daha fazla bilgi için bkz. sys.securable_classes (Transact-SQL).

0 = Veritabanı
1 = Nesne veya Sütun
3 = Şema
4 = Veritabanı Sorumlusu
5 = Derleme - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
6 = Tür
10 = XML Şema Koleksiyonu -
için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
15 = İleti Türü - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
16 = Hizmet Sözleşmesi - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
17 = Hizmet - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
18 = Uzak Hizmet Bağlama - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
19 = Yol - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
23 =Full-Text Kataloğu - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
24 = Simetrik Anahtar - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
25 = Sertifika - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
26 = Asimetrik Anahtar - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
29 = Tam Metin Durdurma Listesi - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
31 = Arama Özelliği Listesi - için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
32 = Veritabanı Kapsamlı Kimlik Bilgileri - için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler.
34 = Dış Dil - için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümler.
class_desc nvarchar(60) üzerinde izin bulunan sınıfın açıklaması.

DATABASE

OBJECT_OR_COLUMN

SCHEMA

DATABASE_PRINCIPAL

ASSEMBLY

TYPE

XML_SCHEMA_COLLECTION

MESSAGE_TYPE

SERVICE_CONTRACT

SERVICE

REMOTE_SERVICE_BINDING

ROUTE

FULLTEXT_CATALOG

SYMMETRIC_KEYS

CERTIFICATE

ASYMMETRIC_KEY

TAM METİN STOP LİSTESİ

ÖZELLIK LISTESI ARA

VERITABANı KAPSAMLı KIMLIK BILGILERI

DıŞ DIL
major_id int İznin bulunduğu öğenin kimliği, sınıfa göre yorumlanır. Genellikle, major_id yalnızca sınıfın temsil ettiği şey için geçerli olan kimlik türü.

0 = Veritabanının kendisi

kullanıcı nesneleri için >0 = Object-IDs

sistem nesneleri için <0 = Object-IDs
minor_id int sınıfına göre yorumlanan, üzerinde iznin bulunduğu öğenin Secondary-ID. Nesne sınıfı için kullanılabilir alt kategori olmadığından genellikle minor_id sıfır olur. Aksi takdirde, tablonun Column-ID.
grantee_principal_id int İzinlerin verildiği veritabanı asıl kimliği.
grantor_principal_id int Bu izinleri verenin veritabanı asıl kimliği.
type char(4) Veritabanı izin türü. İzin türlerinin listesi için sonraki tabloya bakın.
permission_name nvarchar(128) İzin adı.
state char(1) İzin belirtiliyor:

D = Reddet

R = İptal Et

G = Verme

W = Verme Seçeneğiyle Verme
state_desc nvarchar(60) İzin durumunun açıklaması:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

Veritabanı İzinleri

Aşağıdaki izin türleri mümkündür.

İzin türü İzin adı Güvenli hale getirilebilir için geçerlidir
AADS VERITABANı OLAY OTURUMLARıNı DEĞIŞTIRME DATABASE
AAMK HERHANGI BIR MASKEYI DEĞIŞTIRME DATABASE
AEDS TÜM DıŞ VERI KAYNAKLARıNı DEĞIŞTIRME DATABASE
AEFF TÜM DıŞ DOSYA BIÇIMLERINI DEĞIŞTIRME DATABASE
AL ALTER UYGULAMA ROLÜ, DERLEME, ASIMETRIK ANAHTAR, SERTIFIKA, SÖZLEŞME, VERITABANı, TAM METIN KATALOĞU, İLETI TÜRÜ, NESNE, UZAK HIZMET BAĞLAMA, ROL, YOL, ŞEMA, HIZMET, SIMETRIK ANAHTAR, KULLANıCı, XML ŞEMA KOLEKSIYONU
ALAK HERHANGI BIR ASIMETRIK ANAHTARı DEĞIŞTIRME DATABASE
ALAR TÜM UYGULAMA ROLLERINI DEĞIŞTIRME DATABASE
ALAS TÜM DERLEMELERI DEĞIŞTIRME DATABASE
ALCF HERHANGI BIR SERTIFIKAYı DEĞIŞTIRME DATABASE
ALDS TÜM DATASPACE'LERI DEĞIŞTIRME DATABASE
ALED HERHANGI BIR VERITABANı OLAY BILDIRIMINI DEĞIŞTIRME DATABASE
ALFT TÜM TAM METIN KATALOĞUNU DEĞIŞTIRME DATABASE
ALMT HERHANGI BIR ILETI TÜRÜNÜ DEĞIŞTIRME DATABASE
ALRL HERHANGI BIR ROLÜ DEĞIŞTIRME DATABASE
ALRT HER YOLU DEĞIŞTIRME DATABASE
ALSB UZAK HIZMET BAĞLAMALARıNı DEĞIŞTIRME DATABASE
ALSC HERHANGI BIR SÖZLEŞMEYI DEĞIŞTIRME DATABASE
ALSK SIMETRIK ANAHTARı DEĞIŞTIRME DATABASE
ALSM TÜM ŞEMALARı DEĞIŞTIRME DATABASE
ALSV HİzMETİ DEĞIŞTIRME DATABASE
ALTG TÜM VERITABANı DDL TETIKLEYICILERINI DEĞIŞTIRME DATABASE
ALUS HERHANGI BIR KULLANıCıYı DEĞIŞTIRME DATABASE
AUTH AUTHENTICATE DATABASE
BADB YEDEKLEME VERITABANı DATABASE
BALO YEDEKLEME GÜNLÜĞÜ DATABASE
CL CONTROL UYGULAMA ROLÜ, DERLEME, ASIMETRIK ANAHTAR, SERTIFIKA, SÖZLEŞME, VERITABANı, TAM METIN KATALOĞU, İLETI TÜRÜ, NESNE, UZAK HIZMET BAĞLAMA, ROL, YOL, ŞEMA, HIZMET, SIMETRIK ANAHTAR, TÜR, KULLANıCı, XML ŞEMA KOLEKSIYONU
CO CONNECT DATABASE
CORP ÇOĞALTMA BAĞLANTI DATABASE
CP CHECKPOINT DATABASE
CRAG TOPLAMA OLUŞTURMA DATABASE
CRAK ASIMETRIK ANAHTAR OLUŞTURMA DATABASE
CRAS MONTAJ OLUŞTUR DATABASE
CRCF SERTIFIKA OLUŞTUR DATABASE
CRDB VERITABANı OLUŞTURMA DATABASE
CRDF VARSAYıLAN OLUŞTUR DATABASE
CRED VERITABANı DDL OLAY BILDIRIMI OLUŞTURMA DATABASE
CRFN Fonksiyon Oluştur DATABASE
CRFT TAM METIN KATALOĞU OLUŞTURMA DATABASE
CRMT İLETI TÜRÜ OLUŞTURMA DATABASE
CRPR İŞLEM OLUŞTUR DATABASE
CRQU KUYRUK OLUŞTURMA DATABASE
CRRL ROL YARAT DATABASE
CRRT ROTA OLUŞTUR DATABASE
CRRU KURAL OLUŞTUR DATABASE
CRSB UZAK HIZMET BAĞLAMASı OLUŞTURMA DATABASE
CRSC SÖZLEŞME OLUŞTURMA DATABASE
CRSK SIMETRIK ANAHTAR OLUŞTURMA DATABASE
CRSM ŞEMA OLUŞTURMA DATABASE
CRSN EŞ ANLAMLı OLUŞTURMA DATABASE
CRSO için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler.

DIZIYI OLUŞTUR
DATABASE
CRSV HİzMET OLUŞTUR DATABASE
CRTB CREATE TABLE DATABASE
CRTY TÜR OLUŞTUR DATABASE
CRVW GÖRÜNÜM YARAT DATABASE
CRXS için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.

XML ŞEMA KOLEKSIYONU OLUŞTURMA
DATABASE
DABO VERITABANı TOPLU IŞLEMLERINI YÖNETME DATABASE
DL DELETE VERITABANı, NESNE, ŞEMA
EAES HERHANGI BIR DıŞ BETIĞI YÜRÜTME DATABASE
EX EXECUTE DERLEME, VERITABANı, NESNE, ŞEMA, TÜR, XML ŞEMA KOLEKSIYONU
IM IMPERSONATE USER
IN INSERT VERITABANı, NESNE, ŞEMA
RC RECEIVE OBJECT
RF REFERENCES DERLEME, ASIMETRIK ANAHTAR, SERTIFIKA, SÖZLEŞME, VERITABANı, TAM METIN KATALOĞU, İLETI TÜRÜ, NESNE, ŞEMA, SIMETRIK ANAHTAR, TÜR, XML ŞEMA KOLEKSIYONU
SL SELECT VERITABANı, NESNE, ŞEMA
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN SORGU BILDIRIMLERINE ABONE OLMA DATABASE
TO SAHIPLENMEK DERLEME, ASIMETRIK ANAHTAR, SERTIFIKA, SÖZLEŞME, VERITABANı, TAM METIN KATALOĞU, İLETI TÜRÜ, NESNE, UZAK HIZMET BAĞLAMA, ROL, YOL, ŞEMA, HIZMET, SIMETRIK ANAHTAR, TÜR, XML ŞEMA KOLEKSIYONU
UP UPDATE VERITABANı, NESNE, ŞEMA
VW TANıMı GÖRÜNTÜLE UYGULAMA ROLÜ, DERLEME, ASIMETRIK ANAHTAR, SERTIFIKA, SÖZLEŞME, VERITABANı, TAM METIN KATALOĞU, İLETI TÜRÜ, NESNE, UZAK HIZMET BAĞLAMA, ROL, YOL, ŞEMA, HIZMET, SIMETRIK ANAHTAR, TÜR, KULLANıCı, XML ŞEMA KOLEKSIYONU
VWCK HERHANGI BIR SÜTUN ŞIFRELEME ANAHTARı TANıMıNı GÖRÜNTÜLEME DATABASE
VWCM HERHANGI BIR SÜTUN ANA ANAHTAR TANıMıNı GÖRÜNTÜLEME DATABASE
VWCT DEĞIŞIKLIK İZLEMEYI GÖRÜNTÜLE TABLO, ŞEMA
VWDS VERITABANı DURUMUNU GÖRÜNTÜLEME DATABASE

REVOKE ve sütun özel durum izinleri

Çoğu durumda REVOKE komutu GRANT veya DENY girdisini sys.database_permissions kaldırır.

Ancak, bir nesne üzerinde VERME veya REDDETME izinleri vermek ve sonra bir sütunda bu izni İPTAL ETMEK mümkündür. Bu sütun-özel durum izni sys.database_permissions'de İPTAL ET olarak gösterilir. Aşağıdaki örneği göz önünde bulundurun:

GRANT SELECT ON Person.Person TO [Sales];

REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];

Bu izinler sys.database_permissions bir GRANT (tabloda) ve bir REVOKE (sütunda) olarak gösterilir.

Important

Sales sorumlusu diğer izinler aracılığıyla sütuna erişmeye devam edebilir. İzinleri iptal etmek yerine reddedseydik Sales DENY her zaman GRANT'in yerini alır çünkü sütunun içeriğini görüntüleyemeyecekti.

Permissions

Herhangi bir kullanıcı kendi izinlerini görebilir. Diğer kullanıcıların izinlerini görmek için VIEW DEFINITION, ALTER ANY USER veya bir kullanıcı üzerinde herhangi bir izin gerekir. Kullanıcı tanımlı rolleri görmek için ROLDE ALTER ANY ROLE veya üyelik (genel gibi) gerekir.

Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması.

Examples

A. Veritabanı sorumlularının tüm izinlerini listeleme

Aşağıdaki sorgu, veritabanı sorumlularına açıkça verilen veya reddedilen izinleri listeler.

Important

Sabit veritabanı rollerinin izinleri sys.database_permissionsiçinde görünmez. Bu nedenle, veritabanı sorumluları burada listelenmeyen ek izinlere sahip olabilir.

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. Veritabanı içindeki şema nesneleri üzerindeki izinleri listeleme

Aşağıdaki sorgu, sys.database_principals ve sys.database_permissionssys.objects ve sys.schemas belirli şema nesnelerine verilen veya reddedilen izinleri listelemek için birleştirir.

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. Belirli bir nesnenin izinlerini listeleme

Tek bir veritabanı nesnesine özgü izinleri sorgulamak için önceki örneği kullanabilirsiniz.

Örneğin, testveritabanı kullanıcısına AdventureWorksDW2025 aşağıdaki ayrıntılı izinleri göz önünde bulundurun:

GRANT SELECT ON dbo.vAssocSeqOrders TO [test];

dbo.vAssocSeqOrdersatanan ayrıntılı izinleri bulun:

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';

Çıktıyı döndürür:

principal_id    name    type_desc    authentication_type_desc    state_desc    permission_name    ObjectName
5    test    SQL_USER    INSTANCE    GRANT    SELECT    dbo.vAssocSeqOrders

Ayrıca bakınız

Sonraki Adımlar