Udostępnij za pomocą


sys.database_permissions (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wiersz dla każdego uprawnienia lub uprawnienia wyjątku kolumny w bazie danych. W przypadku kolumn istnieje wiersz dla każdego uprawnienia, które różni się od odpowiednich uprawnień na poziomie obiektu. Jeśli uprawnienie kolumny jest takie samo jak odpowiednie uprawnienie do obiektu, nie ma dla niego wiersza, a zastosowane uprawnienie jest uprawnieniem tego obiektu.

Important

Uprawnienia na poziomie kolumny zastępują uprawnienia na poziomie obiektu w tej samej jednostce.

Nazwa kolumny Typ danych Description
class tinyint Identyfikuje klasę, na której istnieje uprawnienie. Aby uzyskać więcej informacji, zobacz sys.securable_classes (Transact-SQL).

0 = baza danych
1 = obiekt lub kolumna
3 = Schemat
4 = Podmiot zabezpieczeń bazy danych
5 = Zestaw — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
6 = typ
10 = kolekcja schematów XML —
Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.
15 = Typ komunikatu — dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
16 = Umowa usługi — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
17 = Service — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
18 = Powiązanie usługi zdalnej — dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
19 = Route — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
23 =Full-Text Catalog — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
24 = Klucz symetryczny — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
25 = Certyfikat — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
26 = Klucz asymetryczny — dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
29 = Lista zatrzymań pełnotekstowych — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
31 = Lista właściwości wyszukiwania — Dotyczy: SQL Server 2008 (10.0.x) i nowszych wersjach.
32 = Poświadczenia o zakresie bazy danych — Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach.
34 = Język zewnętrzny — Dotyczy: SQL Server 2019 (15.x) i nowszych wersjach.
class_desc nvarchar(60) Opis klasy, na której istnieje uprawnienie.

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

LISTA ZATRZYMAŃ PEŁNOTEKSTOWYCH

LISTA WŁAŚCIWOŚCI WYSZUKIWANIA

POŚWIADCZENIA O ZAKRESIE BAZY DANYCH

JĘZYK ZEWNĘTRZNY
major_id int Identyfikator elementu, na którym istnieje uprawnienie, interpretowane zgodnie z klasą. Zazwyczaj major_id po prostu rodzaj identyfikatora, który ma zastosowanie do tego, co reprezentuje klasa.

0 = sama baza danych

>0 = Object-IDs dla obiektów użytkownika

<0 = Object-IDs dla obiektów systemowych
minor_id int Secondary-ID rzeczy, na których istnieje uprawnienie, interpretowane zgodnie z klasą. Często minor_id jest równa zero, ponieważ nie ma podkategorii dostępnej dla klasy obiektu. W przeciwnym razie jest to Column-ID tabeli.
grantee_principal_id int Identyfikator podmiotu zabezpieczeń bazy danych, do którego przyznano uprawnienia.
grantor_principal_id int Identyfikator podmiotu udzielającego tych uprawnień w bazie danych.
type char(4) Typ uprawnień bazy danych. Aby uzyskać listę typów uprawnień, zobacz następną tabelę.
permission_name nvarchar(128) Imię pozwolenia.
state char(1) Stwierdzenie zgody:

D = Odmowa

R = Odwołaj

G = Grant

W = Przyznanie z opcją przyznania
state_desc nvarchar(60) Opis stanu uprawnień:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

Uprawnienia bazy danych

Możliwe są następujące typy uprawnień.

Typ uprawnień Nazwa uprawnienia Dotyczy zabezpieczania
AADS ZMIENIĆ DOWOLNĄ SESJĘ ZDARZEŃ BAZY DANYCH DATABASE
AAMK ZMIEŃ DOWOLNĄ MASKĘ DATABASE
AEDS ZMIENIANIE DOWOLNEGO ZEWNĘTRZNEGO ŹRÓDŁA DANYCH DATABASE
AEFF ZMIENIANIE DOWOLNEGO FORMATU PLIKU ZEWNĘTRZNEGO DATABASE
AL ALTER ROLA APLIKACJI, ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, POWIĄZANIE USŁUGI ZDALNEJ, ROLA, TRASA, SCHEMAT, USŁUGA, KLUCZ SYMETRYCZNY, UŻYTKOWNIK, KOLEKCJA SCHEMATÓW XML
ALAK ZMIENIANIE DOWOLNEGO KLUCZA ASYMETRYCZNEGO DATABASE
ALAR ZMIENIANIE DOWOLNEJ ROLI APLIKACJI DATABASE
ALAS ZMIENIANIE DOWOLNEGO ZESTAWU DATABASE
ALCF ZMIENIANIE DOWOLNEGO CERTYFIKATU DATABASE
ALDS ZMIENIANIE DOWOLNEJ PRZESTRZENI DANYCH DATABASE
ALED ZMIENIANIE DOWOLNEGO POWIADOMIENIA O ZDARZENIU BAZY DANYCH DATABASE
ALFT ZMIEŃ DOWOLNY KATALOG PEŁNOTEKSTOWY DATABASE
ALMT ZMIENIANIE DOWOLNEGO TYPU KOMUNIKATU DATABASE
ALRL ZMIENIANIE DOWOLNEJ ROLI DATABASE
ALRT ZMIENIANIE DOWOLNEJ TRASY DATABASE
ALSB ZMIENIANIE DOWOLNEGO POWIĄZANIA USŁUGI ZDALNEJ DATABASE
ALSC ZMIEŃ DOWOLNY KONTRAKT DATABASE
ALSK ZMIENIANIE DOWOLNEGO KLUCZA SYMETRYCZNEGO DATABASE
ALSM ZMIENIANIE DOWOLNEGO SCHEMATU DATABASE
ALSV ZMIENIANIE DOWOLNEJ USŁUGI DATABASE
ALTG ZMIENIANIE DOWOLNEGO WYZWALACZA DDL BAZY DANYCH DATABASE
ALUS ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA DATABASE
AUTH AUTHENTICATE DATABASE
BADB KOPIA ZAPASOWA BAZA DANYCH DATABASE
BALO DZIENNIK KOPII ZAPASOWYCH DATABASE
CL CONTROL ROLA APLIKACJI, ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, POWIĄZANIE USŁUGI ZDALNEJ, ROLA, TRASA, SCHEMAT, USŁUGA, KLUCZ SYMETRYCZNY, TYP, UŻYTKOWNIK, KOLEKCJA SCHEMATÓW XML
CO CONNECT DATABASE
CORP REPLIKACJA CONNECT DATABASE
CP CHECKPOINT DATABASE
CRAG TWORZENIE AGREGACJI DATABASE
CRAK TWORZENIE KLUCZA ASYMETRYCZNEGO DATABASE
CRAS TWORZENIE ZESTAWU DATABASE
CRCF TWORZENIE CERTYFIKATU DATABASE
CRDB TWORZENIE BAZY DANYCH DATABASE
CRDF UTWÓRZ DOMYŚLNE DATABASE
CRED POWIADOMIENIE O ZDARZENIU TWORZENIA BAZY DANYCH DDL DATABASE
CRFN UTWÓRZ FUNKCJĘ DATABASE
CRFT TWORZENIE WYKAZU PEŁNOTEKSTOWEGO DATABASE
CRMT TWORZENIE TYPU KOMUNIKATU DATABASE
CRPR TWORZENIE PROCEDURY DATABASE
CRQU TWORZENIE KOLEJKI DATABASE
CRRL UTWÓRZ ROLĘ DATABASE
CRRT TWORZENIE TRASY DATABASE
CRRU TWORZENIE REGUŁY DATABASE
CRSB TWORZENIE POWIĄZANIA USŁUGI ZDALNEJ DATABASE
CRSC TWORZENIE KONTRAKTU DATABASE
CRSK TWORZENIE KLUCZA SYMETRYCZNEGO DATABASE
CRSM TWORZENIE SCHEMATU DATABASE
CRSN TWORZENIE SYNONIMU DATABASE
CRSO Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

UTWÓRZ SEKWENCJĘ
DATABASE
CRSV TWORZENIE USŁUGI DATABASE
CRTB CREATE TABLE DATABASE
CRTY TWORZENIE TYPU DATABASE
CRVW UTWÓRZ WIDOK DATABASE
CRXS Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.

TWORZENIE KOLEKCJI SCHEMATÓW XML
DATABASE
DABO ADMINISTROWANIE OPERACJAMI ZBIORCZYM BAZY DANYCH DATABASE
DL DELETE BAZA DANYCH, OBIEKT, SCHEMAT
EAES WYKONAJ DOWOLNY SKRYPT ZEWNĘTRZNY DATABASE
EX EXECUTE ASEMBLER, BAZA DANYCH, OBIEKT, SCHEMAT, TYP, KOLEKCJA SCHEMATÓW XML
IM IMPERSONATE USER
IN INSERT BAZA DANYCH, OBIEKT, SCHEMAT
RC RECEIVE OBJECT
RF REFERENCES ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, SCHEMAT, KLUCZ SYMETRYCZNY, TYP, KOLEKCJA SCHEMATÓW XML
SL SELECT BAZA DANYCH, OBIEKT, SCHEMAT
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN SUBSKRYBOWANIE POWIADOMIEŃ O ZAPYTANIACH DATABASE
TO PRZEJMIJ ODPOWIEDZIALNOŚĆ ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, POWIĄZANIE USŁUGI ZDALNEJ, ROLA, TRASA, SCHEMAT, USŁUGA, KLUCZ SYMETRYCZNY, TYP, KOLEKCJA SCHEMATÓW XML
UP UPDATE BAZA DANYCH, OBIEKT, SCHEMAT
VW DEFINICJA WIDOKU ROLA APLIKACJI, ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, POWIĄZANIE USŁUGI ZDALNEJ, ROLA, TRASA, SCHEMAT, USŁUGA, KLUCZ SYMETRYCZNY, TYP, UŻYTKOWNIK, KOLEKCJA SCHEMATÓW XML
VWCK WYŚWIETL DOWOLNĄ DEFINICJĘ KLUCZA SZYFROWANIA KOLUMNY DATABASE
VWCM WYŚWIETLANIE DOWOLNEJ DEFINICJI KLUCZA GŁÓWNEGO KOLUMNY DATABASE
VWCT WYŚWIETLANIE ŚLEDZENIA ZMIAN TABELA, SCHEMAT
VWDS WYŚWIETLANIE STANU BAZY DANYCH DATABASE

UPRAWNIENIA ODWOŁANIA i wyjątku kolumny

W większości przypadków polecenie REVOKE spowoduje usunięcie wpisu GRANT lub DENY z sys.database_permissions.

Można jednak przyznać lub odmówić uprawnień do obiektu, a następnie odwołać to uprawnienie w kolumnie. To uprawnienie wyjątku kolumny zostanie wyświetlone jako ODWOŁANIE w sys.database_permissions. Rozważmy następujący przykład:

GRANT SELECT ON Person.Person TO [Sales];

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

Te uprawnienia będą wyświetlane w sys.database_permissions jako jeden grant (w tabeli) i jeden ODWOŁAJ (w kolumnie).

Important

Funkcja ODWOŁAJ różni się od opcji DENY, ponieważ podmiot zabezpieczeń Sales może nadal mieć dostęp do kolumny za pośrednictwem innych uprawnień. Jeśli odmówiliśmy uprawnień zamiast ich odwoływać, Sales nie będzie mógł wyświetlić zawartości kolumny, ponieważ odmowa zawsze zastępuje grant.

Permissions

Każdy użytkownik może zobaczyć własne uprawnienia. Aby wyświetlić uprawnienia dla innych użytkowników, wymaga funkcji VIEW DEFINITION, ALTER ANY USER lub dowolnego uprawnienia użytkownika. Aby wyświetlić role zdefiniowane przez użytkownika, wymaga ZMIANY DOWOLNEJ ROLI lub członkostwa w roli (na przykład publicznej).

Widoczność metadanych w widokach wykazu jest ograniczona do zabezpieczania, które użytkownik jest właścicielem lub na którym użytkownik otrzymał jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Examples

A. Wyświetlanie listy wszystkich uprawnień podmiotów zabezpieczeń bazy danych

Poniższe zapytanie zawiera listę uprawnień jawnie udzielonych lub odrzuconych podmiotom zabezpieczeń bazy danych.

Important

Uprawnienia stałych ról bazy danych nie są wyświetlane w sys.database_permissions. W związku z tym podmioty zabezpieczeń bazy danych mogą mieć dodatkowe uprawnienia, które nie są wymienione tutaj.

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. Wyświetlanie listy uprawnień do obiektów schematu w bazie danych

Poniższe zapytanie łączy sys.database_principals i sys.database_permissions do sys.objects i sys.schemas do wyświetlania listy uprawnień przyznanych lub odrzuconych do określonych obiektów schematu.

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. Wyświetlanie listy uprawnień dla określonego obiektu

W poprzednim przykładzie można wykonywać zapytania dotyczące uprawnień specyficznych dla pojedynczego obiektu bazy danych.

Rozważmy na przykład następujące szczegółowe uprawnienia przyznane użytkownikowi bazy danych test w przykładowej bazie danych AdventureWorksDW2025:

GRANT SELECT ON dbo.vAssocSeqOrders TO [test];

Znajdź szczegółowe uprawnienia przypisane do 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';

Zwraca dane wyjściowe:

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

Zobacz także

Dalsze kroki