sys.database_permissions (Transact-SQL)
platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)koncový bod SQL Analytics ve službě Microsoft FabricWarehouse v Microsoft Fabricdatabáze SQL v Microsoft Fabric
Vrátí řádek pro každé oprávnění nebo oprávnění výjimky sloupce v databázi. Pro sloupce existuje řádek pro každé oprávnění, které se liší od odpovídajícího oprávnění na úrovni objektu. Pokud je oprávnění sloupce stejné jako odpovídající oprávnění objektu, neexistuje pro něj žádný řádek a použité oprávnění je objekt.
Důležitý
Oprávnění na úrovni sloupce přepisuje oprávnění na úrovni objektu ve stejné entitě.
Název sloupce | Datový typ | Popis |
---|---|---|
třídy |
tinyint | Identifikuje třídu, pro kterou existuje oprávnění. Další informace naleznete v tématu sys.securable_classes (Transact-SQL). 0 = Databáze 1 = objekt nebo sloupec 3 = schéma 4 = objekt zabezpečení databáze 5 = Sestavení – platí pro: SQL Server 2008 (10.0.x) a novější verze. 6 = Typ 10 = Kolekce schémat XML – platí pro: SQL Server 2008 (10.0.x) a novější verze. 15 = Typ zprávy – platí pro: SQL Server 2008 (10.0.x) a novější verze. 16 = Servisní kontrakt – platí pro: SQL Server 2008 (10.0.x) a novější verze. 17 = Služba – platí pro: SQL Server 2008 (10.0.x) a novější verze. 18 = Vazba vzdálené služby – platí pro: SQL Server 2008 (10.0.x) a novější verze. 19 = Trasa – platí pro: SQL Server 2008 (10.0.x) a novější verze. 23 = katalogFull-Text – platí pro: SQL Server 2008 (10.0.x) a novější verze. 24 = symetrický klíč – platí pro: SQL Server 2008 (10.0.x) a novější verze. 25 = Certifikát – platí pro: SQL Server 2008 (10.0.x) a novější verze. 26 = Asymetrický klíč – platí pro: SQL Server 2008 (10.0.x) a novější verze. 29 = Fulltext Stoplist - platí pro: SQL Server 2008 (10.0.x) a novější verze. 31 = Seznam vlastností vyhledávání – platí pro: SQL Server 2008 (10.0.x) a novější verze. 32 = Přihlašovací údaje s vymezeným oborem databáze – platí pro: SQL Server 2016 (13.x) a novější verze. 34 = Externí jazyk – platí pro: SQL Server 2019 (15.x) a novější verze. |
class_desc | nvarchar(60) | Popis třídy, pro kterou existuje oprávnění. DATABÁZE OBJECT_OR_COLUMN SCHÉMA DATABASE_PRINCIPAL SHROMÁŽDĚNÍ TYP XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SLUŽBA REMOTE_SERVICE_BINDING CESTA FULLTEXT_CATALOG SYMMETRIC_KEYS CERTIFIKÁT ASYMMETRIC_KEY FULLTEXT STOPLIST SEZNAM VLASTNOSTÍ HLEDÁNÍ PŘIHLAŠOVACÍ ÚDAJE V OBORU DATABÁZE EXTERNÍ JAZYK |
major_id | int | ID věci, na které existuje oprávnění, interpretováno podle třídy. Obvykle major_id jednoduše druh ID, který se vztahuje na to, co třída představuje. 0 = samotná databáze >0 = Object-IDs pro uživatelské objekty <0 = Object-IDs pro systémové objekty |
minor_id | int | Secondary-ID věcí, na kterých existuje oprávnění, interpretováno podle třídy.
minor_id je často nula, protože pro třídu objektu není k dispozici žádná podkategorie. V opačném případě se jedná o Column-ID tabulky. |
grantee_principal_id | int | ID instančního objektu databáze, ke kterému jsou udělena oprávnění. |
grantor_principal_id | int | ID instančního objektu databáze udělovače těchto oprávnění. |
typ | znak(4) | Typ oprávnění databáze. Seznam typů oprávnění najdete v další tabulce. |
permission_name | nvarchar(128) | Název oprávnění |
stavu |
znak |
Stav oprávnění: D = Odepřít R = Odvolat G = Grant W = Grant With Grant Option |
state_desc | nvarchar(60) | Popis stavu oprávnění: POPŘÍT ODVOLAT GRANT GRANT_WITH_GRANT_OPTION |
Oprávnění k databázi
Jsou možné následující typy oprávnění.
Typ oprávnění | Název oprávnění | Platí pro zabezpečitelné |
---|---|---|
AADS | ALTER ANY DATABASE EVENT SESSION | DATABÁZE |
AAMK | ALTER ANY MASK | DATABÁZE |
AEDS | ALTER ANY EXTERNAL DATA SOURCE | DATABÁZE |
AEFF | ALTER ANY EXTERNAL FILE FORMAT | DATABÁZE |
HLINÍK | PROMĚNIT | ROLE APLIKACE, SESTAVENÍ, ASYMETRICKÉ KLÍČE, CERTIFIKÁT, KONTRAKT, DATABÁZE, FULLTEXT KATALOG, TYP ZPRÁVY, OBJEKT, VZDÁLENÁ VAZBA SLUŽBY, ROLE, TRASA, SCHÉMA, SLUŽBA, SYMETRICKÝ KLÍČ, UŽIVATEL, KOLEKCE SCHÉMAT XML |
ALAK | ALTER ANY ASYMMETRIC KEY | DATABÁZE |
ALAR | ALTER ANY APPLICATION ROLE | DATABÁZE |
BĚDA | ALTER ANY ASSEMBLY | DATABÁZE |
ALCF | ALTER ANY CERTIFICATE | DATABÁZE |
ALDS | ALTER ANY DATASPACE | DATABÁZE |
ALED | ALTER ANY DATABASE EVENT NOTIFICATION | DATABÁZE |
ALFT | ALTER ANY FULLTEXT CATALOG | DATABÁZE |
ALMT | ALTER ANY MESSAGE TYPE | DATABÁZE |
ALRL | ALTER ANY ROLE | DATABÁZE |
ALRT | ALTER ANY ROUTE | DATABÁZE |
ALSB | ALTER ANY REMOTE SERVICE BINDING | DATABÁZE |
ALSC | ALTER ANY CONTRACT | DATABÁZE |
ALSK | ALTER ANY SYMMETRIC KEY | DATABÁZE |
ALSM | ALTER ANY SCHEMA | DATABÁZE |
ALSV | ALTER ANY SERVICE | DATABÁZE |
ALTG | ALTER ANY DATABASE DDL TRIGGER | DATABÁZE |
ALUS | ALTER ANY USER | DATABÁZE |
AUTH | OVĚŘIT | DATABÁZE |
BADB | ZÁLOHOVAT DATABÁZI | DATABÁZE |
BALO | PROTOKOL ZÁLOHOVÁNÍ | DATABÁZE |
CL | ŘÍZENÍ | ROLE APLIKACE, SESTAVENÍ, ASYMETRICKÉ KLÍČE, CERTIFIKÁT, KONTRAKT, DATABÁZE, KATALOG FULLTEXT, TYP ZPRÁVY, OBJEKT, VZDÁLENÁ VAZBA SLUŽBY, ROLE, TRASA, SCHÉMA, SLUŽBA, SYMETRICKÝ KLÍČ, TYP, UŽIVATEL, KOLEKCE SCHÉMAT XML |
CO | SPOJIT | DATABÁZE |
CORP | PŘIPOJENÍ REPLIKACE | DATABÁZE |
CP | KONTROLNÍ BOD | DATABÁZE |
ÚTES | CREATE AGGREGATE | DATABÁZE |
CRAK | VYTVOŘENÍ ASYMETRICKÉHO KLÍČE | DATABÁZE |
CRAS | CREATE ASSEMBLY | DATABÁZE |
CRCF | VYTVOŘENÍ CERTIFIKÁTU | DATABÁZE |
CRDB | CREATE DATABASE | DATABÁZE |
RDF | VYTVOŘIT VÝCHOZÍ | DATABÁZE |
CRED | VYTVOŘENÍ OZNÁMENÍ UDÁLOSTI DDL DATABÁZE | DATABÁZE |
CRFN | CREATE FUNCTION | DATABÁZE |
CRFT | VYTVOŘIT FULLTEXT KATALOG | DATABÁZE |
CRMT | VYTVOŘENÍ TYPU ZPRÁVY | DATABÁZE |
CRPR | CREATE PROCEDURE | DATABÁZE |
CRQU | VYTVOŘENÍ FRONTY | DATABÁZE |
CRRL | VYTVOŘENÍ ROLE | DATABÁZE |
CRRT | VYTVOŘIT TRASU | DATABÁZE |
CRRU | VYTVOŘIT PRAVIDLO | DATABÁZE |
CRSB | VYTVOŘENÍ VAZBY VZDÁLENÉ SLUŽBY | DATABÁZE |
CRSC | CREATE CONTRACT | DATABÁZE |
CRSK | VYTVOŘENÍ SYMETRICKÉHO KLÍČE | DATABÁZE |
CRSM | VYTVOŘENÍ SCHÉMATU | DATABÁZE |
CRSN | VYTVOŘIT SYNONYMUM | DATABÁZE |
CRSO |
platí pro: SQL Server 2012 (11.x) a novější verze. CREATE SEQUENCE |
DATABÁZE |
CRSV | CREATE SERVICE | DATABÁZE |
CRTB | CREATE TABLE | DATABÁZE |
CRTY | VYTVOŘIT TYP | DATABÁZE |
CRVW | VYTVOŘIT ZOBRAZENÍ | DATABÁZE |
CRXS |
platí pro: SQL Server 2008 (10.0.x) a novější verze. VYTVOŘENÍ KOLEKCE SCHÉMAT XML |
DATABÁZE |
DABO | SPRÁVA HROMADNÝCH OPERACÍ DATABÁZE | DATABÁZE |
DL | VYMAZAT | DATABÁZE, OBJEKT, SCHÉMA |
EAES | SPUŠTĚNÍ LIBOVOLNÉHO EXTERNÍHO SKRIPTU | DATABÁZE |
EX | PROVÉST | SESTAVENÍ, DATABÁZE, OBJEKT, SCHÉMA, TYP, KOLEKCE SCHÉMAT XML |
IM | ZOSOBŇOVAT | UŽIVATEL |
V | VLOŽIT | DATABÁZE, OBJEKT, SCHÉMA |
RC | OBDRŽET | OBJEKT |
RF | ODKAZY | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
SL | VYBRAT | DATABÁZE, OBJEKT, SCHÉMA |
SN | POSLAT | SLUŽBA |
SPLN | SHOWPLAN | DATABÁZE |
SUQN | PŘIHLÁŠENÍ K ODBĚRU OZNÁMENÍ DOTAZŮ | DATABÁZE |
K | PŘEVZÍT VLASTNICTVÍ | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
NAHORU | AKTUALIZACE | DATABÁZE, OBJEKT, SCHÉMA |
VW | ZOBRAZIT DEFINICI | ROLE APLIKACE, SESTAVENÍ, ASYMETRICKÉ KLÍČE, CERTIFIKÁT, KONTRAKT, DATABÁZE, KATALOG FULLTEXT, TYP ZPRÁVY, OBJEKT, VZDÁLENÁ VAZBA SLUŽBY, ROLE, TRASA, SCHÉMA, SLUŽBA, SYMETRICKÝ KLÍČ, TYP, UŽIVATEL, KOLEKCE SCHÉMAT XML |
VWCK | ZOBRAZENÍ DEFINICE ŠIFROVACÍHO KLÍČE SLOUPCE | DATABÁZE |
VWCM | ZOBRAZENÍ DEFINICE HLAVNÍHO KLÍČE SLOUPCE | DATABÁZE |
VWCT | ZOBRAZIT SLEDOVÁNÍ ZMĚN | TABLE, SCHEMA |
VWDS | ZOBRAZIT STAV DATABÁZE | DATABÁZE |
OPRÁVNĚNÍ K ODVOLÁNÍ a výjimce sloupců
Ve většině případů příkaz REVOKE odebere položku GRANT nebo ODEPŘÍT z sys.database_permissions.
U objektu je však možné udělit nebo odepřít oprávnění a pak toto oprávnění odvolat u sloupce. Toto oprávnění k výjimce sloupce se v sys.database_permissions zobrazí jako REVOKE. Podívejte se na následující příklad:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Tato oprávnění se zobrazí v sys.database_permissions jako jeden GRANT (v tabulce) a jeden REVOKE (ve sloupci).
Důležitý
ODVOLÁNÍ se liší od ODEPŘÍT, protože Sales
objekt zabezpečení může mít stále přístup ke sloupci prostřednictvím jiných oprávnění. Pokud jsme odepřeli oprávnění místo jejich odvolání, Sales
by nemohl zobrazit obsah sloupce, protože DENY vždy nahrazuje GRANT.
Dovolení
Každý uživatel může zobrazit vlastní oprávnění. Pokud chcete zobrazit oprávnění pro ostatní uživatele, vyžaduje ZOBRAZENÍ DEFINICE, ALTER ANY USER nebo jakékoli oprávnění pro uživatele. Chcete-li zobrazit uživatelem definované role, vyžaduje ALTER ANY ROLE nebo členství v roli (například veřejné).
Viditelnost metadat v zobrazeních katalogu je omezená na zabezpečitelné, které uživatel vlastní nebo na kterých uživatel udělil určité oprávnění. Další informace naleznete v tématu konfigurace viditelnosti metadat.
Příklady
A. Výpis všech oprávnění objektů zabezpečení databáze
Následující dotaz zobrazí seznam oprávnění explicitně udělených nebo odepřených objektům zabezpečení databáze.
Důležitý
Oprávnění pevných databázových rolí se v sys.database_permissions
nezobrazují . Instanční objekty databáze proto můžou mít další oprávnění, která tady nejsou uvedená.
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. Výpis oprávnění k objektům schématu v databázi
Následující dotaz spojí sys.database_principals a sys.database_permissions
k sys.objects a sys.schemas k výpisu oprávnění udělených nebo odepřených konkrétním objektům schématu.
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. Seznam oprávnění pro konkrétní objekt
Pomocí předchozího příkladu můžete dotazovat oprávnění specifická pro jeden databázový objekt.
Představte si například následující podrobná oprávnění udělená uživateli databáze
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Vyhledejte podrobná oprávnění přiřazená k 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';
Vrátí výstup:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Viz také
- zabezpečitelných
- hierarchie oprávnění
(databázový stroj) - zobrazení katalogu zabezpečení (Transact-SQL)
- zobrazení katalogu (Transact-SQL)
Další kroky
- udělení oprávnění k objektu zabezpečení
-
GRANT (Transact-SQL)