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 AnalyticsAnalytics Platform Sistemi (PDW)SQL analiz uç noktası microsoft fabricAmbarı'nda Microsoft FabricSQL veritabanında Microsoft Fabric

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.

Önemli

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

Sütun adı Veri tipi Açıklama
sınıf 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ı.

VERİTABANI

OBJECT_OR_COLUMN

ŞEMA

DATABASE_PRINCIPAL

MECLİS

TÜR

XML_SCHEMA_COLLECTION

MESSAGE_TYPE

SERVICE_CONTRACT

HİZMET

REMOTE_SERVICE_BINDING

ROTA

FULLTEXT_CATALOG

SYMMETRIC_KEYS

SERTİFİKA

ASYMMETRIC_KEY

TAMMETİn DURDURMA 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.
türü char(4) Veritabanı izin türü. İzin türlerinin listesi için sonraki tabloya bakın.
permission_name nvarchar(128) İzin adı.
durum karakter(1) İzin durumu:

D = Reddet

R = İptal Et

G = Verme

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

REDDETMEK

İPTAL ET

BAHŞETMEK

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 VERİTABANI
AAMK HERHANGI BIR MASKEYI DEĞIŞTIRME VERİTABANI
AEDS TÜM DıŞ VERI KAYNAKLARıNı DEĞIŞTIRME VERİTABANI
AEFF TÜM DıŞ DOSYA BIÇIMLERINI DEĞIŞTIRME VERİTABANI
AL DEĞİŞTİRMEK 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 VERİTABANI
ALAR TÜM UYGULAMA ROLLERINI DEĞIŞTIRME VERİTABANI
EYVAH TÜM DERLEMELERI DEĞIŞTIRME VERİTABANI
ALCF HERHANGI BIR SERTIFIKAYı DEĞIŞTIRME VERİTABANI
ALDS TÜM DATASPACE'LERI DEĞIŞTIRME VERİTABANI
ALED HERHANGI BIR VERITABANı OLAY BILDIRIMINI DEĞIŞTIRME VERİTABANI
ALFT TÜM TAM METIN KATALOĞUNU DEĞIŞTIRME VERİTABANI
ALMT HERHANGI BIR ILETI TÜRÜNÜ DEĞIŞTIRME VERİTABANI
ALRL HERHANGI BIR ROLÜ DEĞIŞTIRME VERİTABANI
ALRT HER YOLU DEĞIŞTIRME VERİTABANI
ALSB UZAK HIZMET BAĞLAMALARıNı DEĞIŞTIRME VERİTABANI
ALSC HERHANGI BIR SÖZLEŞMEYI DEĞIŞTIRME VERİTABANI
ALSK SIMETRIK ANAHTARı DEĞIŞTIRME VERİTABANI
ALSM TÜM ŞEMALARı DEĞIŞTIRME VERİTABANI
ALSV HİzMETİ DEĞIŞTIRME VERİTABANI
ALTG TÜM VERITABANı DDL TETIKLEYICILERINI DEĞIŞTIRME VERİTABANI
ALUS HERHANGI BIR KULLANıCıYı DEĞIŞTIRME VERİTABANI
AUTH KİMLİK DOĞRULAMASI VERİTABANI
BADB YEDEKLEME VERITABANı VERİTABANI
BALO YEDEKLEME GÜNLÜĞÜ VERİTABANI
CL KONTROL 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 BAĞLAMAK VERİTABANI
CORP ÇOĞALTMAYı BAĞLAMA VERİTABANI
CP DENETİM NOKTASI VERİTABANI
CRAG TOPLAMA OLUŞTURMA VERİTABANI
CRAK ASIMETRIK ANAHTAR OLUŞTURMA VERİTABANI
CRAS CREATE ASSEMBLY VERİTABANI
CRCF SERTIFIKA OLUŞTUR VERİTABANI
CRDB VERITABANı OLUŞTURMA VERİTABANI
CRDF VARSAYıLAN OLUŞTUR VERİTABANI
CRED VERITABANı DDL OLAY BILDIRIMI OLUŞTURMA VERİTABANI
CRFN CREATE FUNCTION VERİTABANI
CRFT TAM METIN KATALOĞU OLUŞTURMA VERİTABANI
CRMT İLETI TÜRÜ OLUŞTURMA VERİTABANI
CRPR YORDAM OLUŞTURMA VERİTABANI
CRQU KUYRUK OLUŞTURMA VERİTABANI
CRRL ROL OLUŞTURMA VERİTABANI
CRRT ROTA OLUŞTUR VERİTABANI
CRRU KURAL OLUŞTUR VERİTABANI
CRSB UZAK HIZMET BAĞLAMASı OLUŞTURMA VERİTABANI
CRSC SÖZLEŞME OLUŞTURMA VERİTABANI
CRSK SIMETRIK ANAHTAR OLUŞTURMA VERİTABANI
CRSM ŞEMA OLUŞTURMA VERİTABANI
CRSN EŞ ANLAMLı OLUŞTURMA VERİTABANI
CRSO için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler.

SIRALI OLUŞTUR
VERİTABANI
CRSV HİzMET OLUŞTUR VERİTABANI
CRTB TABLO OLUŞTUR VERİTABANI
CRTY CREATE TYPE VERİTABANI
CRVW GÖRÜNÜM OLUŞTUR VERİTABANI
CRXS için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.

XML ŞEMA KOLEKSIYONU OLUŞTURMA
VERİTABANI
DABO VERITABANı TOPLU IŞLEMLERINI YÖNETME VERİTABANI
DL SİLMEK VERITABANı, NESNE, ŞEMA
EAES HERHANGI BIR DıŞ BETIĞI YÜRÜTME VERİTABANI
EX YÜRÜTMEK DERLEME, VERITABANı, NESNE, ŞEMA, TÜR, XML ŞEMA KOLEKSIYONU
IM TAKLİT KULLANICI
İÇİNDE SOKMAK VERITABANı, NESNE, ŞEMA
RC ALMAK NESNE
RF BAŞVURU 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 SEÇMEK VERITABANı, NESNE, ŞEMA
SN GÖNDER HİZMET
SPLN SHOWPLAN VERİTABANI
SUQN SORGU BILDIRIMLERINE ABONE OLMA VERİTABANI
HEDEF SAHIPLIK ALMA 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
YUKARI GÜNCELLEŞTİRMEK 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 VERİTABANI
VWCM HERHANGI BIR SÜTUN ANA ANAHTAR TANıMıNı GÖRÜNTÜLEME VERİTABANI
VWCT DEĞIŞIKLIK İZLEMEYI GÖRÜNTÜLE TABLO, ŞEMA
VWDS VERITABANı DURUMUNU GÖRÜNTÜLEME VERİTABANI

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.

Önemli

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.

İzinler

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ı.

Örnekler

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

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

Önemli

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, örnek veritabanıAdventureWorksDW2022veritabanı kullanıcısına test 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 bkz.

Sonraki adımlar