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 | |
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ż
- zabezpieczane
- hierarchii uprawnień (aparatu bazy danych)
- widoki wykazu zabezpieczeń (Transact-SQL)
- widoki wykazu (Transact-SQL)
Następne kroki
- przyznać uprawnienie do podmiotu zabezpieczeń
- GRANT (Transact-SQL)