Udostępnij za pośrednictwem


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 FabricWarehouse w usłudze Microsoft FabricSQL Database 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.

Ważny

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

Nazwa kolumny Typ danych Opis
klasy 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.

BAZA DANYCH

OBJECT_OR_COLUMN

SCHEMAT

DATABASE_PRINCIPAL

MONTAŻ

TYP

XML_SCHEMA_COLLECTION

MESSAGE_TYPE

SERVICE_CONTRACT

USŁUGA

REMOTE_SERVICE_BINDING

TRASA

FULLTEXT_CATALOG

SYMMETRIC_KEYS

CERTYFIKAT

ASYMMETRIC_KEY

LISTA ZATRZYMAŃ PEŁNOTEKSTOWYCH

LISTA WŁAŚCIWOŚCI WYSZUKIWANIA

POŚWIADCZENIA O ZAKRESIE BAZY DANYCH

JĘZYK ZEWNĘTRZNY
major_id 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 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 Identyfikator podmiotu zabezpieczeń bazy danych, do którego przyznano uprawnienia.
grantor_principal_id Identyfikator podmiotu udzielającego tych uprawnień w bazie danych.
typ char(4) Typ uprawnień bazy danych. Aby uzyskać listę typów uprawnień, zobacz następną tabelę.
permission_name nvarchar(128) Nazwa uprawnienia.
stanu char(1) Stan uprawnień:

D = Odmowa

R = Odwołaj

G = Grant

W = Grant With Grant Option
state_desc nvarchar(60) Opis stanu uprawnień:

ZAPRZECZAĆ

ODWOŁAĆ

DOTACJA

GRANT_WITH_GRANT_OPTION

Uprawnienia bazy danych

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

Typ uprawnień Nazwa uprawnienia Dotyczy zabezpieczania
AADS ALTER ANY DATABASE EVENT SESSION BAZA DANYCH
AAMK ZMIEŃ DOWOLNĄ MASKĘ BAZA DANYCH
AEDS ZMIENIANIE DOWOLNEGO ZEWNĘTRZNEGO ŹRÓDŁA DANYCH BAZA DANYCH
AEFF ZMIENIANIE DOWOLNEGO FORMATU PLIKU ZEWNĘTRZNEGO BAZA DANYCH
AL ZMIENIĆ 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 BAZA DANYCH
ALAR ZMIENIANIE DOWOLNEJ ROLI APLIKACJI BAZA DANYCH
NIESTETY ZMIENIANIE DOWOLNEGO ZESTAWU BAZA DANYCH
ALCF ZMIENIANIE DOWOLNEGO CERTYFIKATU BAZA DANYCH
ALDS ZMIENIANIE DOWOLNEJ PRZESTRZENI DANYCH BAZA DANYCH
ALED ZMIENIANIE DOWOLNEGO POWIADOMIENIA O ZDARZENIU BAZY DANYCH BAZA DANYCH
ALFT ALTER ANY FULLTEXT CATALOG BAZA DANYCH
ALMT ZMIENIANIE DOWOLNEGO TYPU KOMUNIKATU BAZA DANYCH
ALRL ZMIENIANIE DOWOLNEJ ROLI BAZA DANYCH
ALRT ZMIENIANIE DOWOLNEJ TRASY BAZA DANYCH
ALSB ZMIENIANIE DOWOLNEGO POWIĄZANIA USŁUGI ZDALNEJ BAZA DANYCH
ALSC ALTER ANY CONTRACT BAZA DANYCH
ALSK ZMIENIANIE DOWOLNEGO KLUCZA SYMETRYCZNEGO BAZA DANYCH
ALSM ZMIENIANIE DOWOLNEGO SCHEMATU BAZA DANYCH
ALSV ZMIENIANIE DOWOLNEJ USŁUGI BAZA DANYCH
ALTG ZMIENIANIE DOWOLNEGO WYZWALACZA DDL BAZY DANYCH BAZA DANYCH
ALUS ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA BAZA DANYCH
AUTH UWIERZYTELNIANIA BAZA DANYCH
BADB KOPIA ZAPASOWA BAZA DANYCH BAZA DANYCH
BALO DZIENNIK KOPII ZAPASOWYCH BAZA DANYCH
CL KONTROLA 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
WSPÓŁ POŁĄCZYĆ BAZA DANYCH
CORP ŁĄCZENIE REPLIKACJI BAZA DANYCH
CP PUNKT KONTROLNY BAZA DANYCH
CRAG TWORZENIE AGREGACJI BAZA DANYCH
CRAK TWORZENIE KLUCZA ASYMETRYCZNEGO BAZA DANYCH
CRAS TWORZENIE ZESTAWU BAZA DANYCH
CRCF TWORZENIE CERTYFIKATU BAZA DANYCH
CRDB TWORZENIE BAZY DANYCH BAZA DANYCH
CRDF UTWÓRZ DOMYŚLNE BAZA DANYCH
CRED POWIADOMIENIE O ZDARZENIU TWORZENIA BAZY DANYCH DDL BAZA DANYCH
CRFN CREATE, FUNKCJA BAZA DANYCH
CRFT TWORZENIE WYKAZU PEŁNOTEKSTOWEGO BAZA DANYCH
CRMT TWORZENIE TYPU KOMUNIKATU BAZA DANYCH
RPR TWORZENIE PROCEDURY BAZA DANYCH
CRQU TWORZENIE KOLEJKI BAZA DANYCH
LISTA CRRL TWORZENIE ROLI BAZA DANYCH
CRRT TWORZENIE TRASY BAZA DANYCH
CRRU TWORZENIE REGUŁY BAZA DANYCH
CRSB TWORZENIE POWIĄZANIA USŁUGI ZDALNEJ BAZA DANYCH
CRSC TWORZENIE KONTRAKTU BAZA DANYCH
CRSK TWORZENIE KLUCZA SYMETRYCZNEGO BAZA DANYCH
CRSM TWORZENIE SCHEMATU BAZA DANYCH
CRSN TWORZENIE SYNONIMU BAZA DANYCH
CRSO Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

TWORZENIE SEKWENCJI
BAZA DANYCH
CRSV TWORZENIE USŁUGI BAZA DANYCH
CRTB CREATE TABLE BAZA DANYCH
CRTY CREATE TYPE BAZA DANYCH
CRVW UTWÓRZ WIDOK BAZA DANYCH
CRXS Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.

TWORZENIE KOLEKCJI SCHEMATÓW XML
BAZA DANYCH
DABO ADMINISTROWANIE OPERACJAMI ZBIORCZYM BAZY DANYCH BAZA DANYCH
DL USUNĄĆ BAZA DANYCH, OBIEKT, SCHEMAT
UMOWY EAES WYKONAJ DOWOLNY SKRYPT ZEWNĘTRZNY BAZA DANYCH
EX WYKONAĆ ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION
Wiadomości błyskawiczne PERSONIFIKOWAĆ UŻYTKOWNIK
W WSTAWIAĆ BAZA DANYCH, OBIEKT, SCHEMAT
RC OTRZYMAĆ SPRZECIWIAĆ SIĘ
RF ODWOŁANIA ZESTAW, KLUCZ ASYMETRYCZNY, CERTYFIKAT, KONTRAKT, BAZA DANYCH, KATALOG PEŁNOTEKSTOWY, TYP KOMUNIKATU, OBIEKT, SCHEMAT, KLUCZ SYMETRYCZNY, TYP, KOLEKCJA SCHEMATÓW XML
SL WYBRAĆ BAZA DANYCH, OBIEKT, SCHEMAT
SN WYŚLIJ USŁUGA
SZŁ SHOWPLAN BAZA DANYCH
SUQN SUBSKRYBOWANIE POWIADOMIEŃ O ZAPYTANIACH BAZA DANYCH
DO PRZEJĘCIE WŁASNOŚCI 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
W górę AKTUALIZACJA 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 BAZA DANYCH
VWCM WYŚWIETLANIE DOWOLNEJ DEFINICJI KLUCZA GŁÓWNEGO KOLUMNY BAZA DANYCH
VWCT WYŚWIETLANIE ŚLEDZENIA ZMIAN TABELA, SCHEMAT
VWDS WYŚWIETLANIE STANU BAZY DANYCH BAZA DANYCH

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

Ważny

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.

Uprawnienia

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.

Przykłady

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.

Ważny

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 AdventureWorksDW2022:

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 też

Następne kroki