sys.database_permissions (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric
Gibt eine Zeile für jede Berechtigung oder Spaltenausnahmeberechtigung in der Datenbank zurück. Für Spalten gibt es eine Zeile für jede Berechtigung, die von der entsprechenden Berechtigung auf Objektebene abweicht. Falls die Spaltenberechtigung mit der entsprechenden Objektberechtigung identisch ist, gibt es dafür keine Zeile, und es wird die Objektberechtigung angewendet.
Wichtig
Berechtigungen auf Spaltenebene überschreiben Berechtigungen auf Objektebene in derselben Entität.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
class | tinyint | Identifiziert die Klasse, für die die Berechtigung vorliegt. Weitere Informationen finden Sie unter sys.securable_classes (Transact-SQL). 0 = Datenbank 1 = Objekt oder Spalte 3 = Schema 4 = Datenbankprinzipal 5 = Assembly – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 6 = Typ 10 = XML-Schemasammlung - Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen 15 = Nachrichtentyp – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 16 = Servicevertrag – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 17 = Dienst – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 18 = Remotedienstbindung – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 19 = Route – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 23 =Volltextkatalog – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 24 = Symmetrischer Schlüssel – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 25 = Zertifikat – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 26 = asymmetrischer Schlüssel – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 29 = Fulltext Stoplist – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 31 = Sucheigenschaftsliste – Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen. 32 = Anmeldeinformationen mit Datenbankbereich – Gilt für: SQL Server 2016 (13.x) und höhere Versionen. 34 = Externe Sprache – Gilt für: SQL Server 2019 (15.x) und höhere Versionen. |
class_desc | nvarchar(60) | Beschreibung der Klasse, in der die Berechtigung vorhanden ist. 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 FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL EXTERNAL LANGUAGE |
major_id | int | ID des Objekts, für das die Berechtigung vorhanden ist, interpretiert nach der Klasse. In der Regel ist die major_id art der ID, die für die Darstellung der Klasse gilt. 0 = Die Datenbank selbst >0 = Objekt-IDs für Benutzerobjekte <0 = Object-IDs für Systemobjekte |
minor_id | int | Sekundäre ID des Objekts, für das die Berechtigung vorhanden ist, interpretiert nach der Klasse. minor_id Dies ist häufig null, da für die Objektklasse keine Unterkategorie verfügbar ist. Andernfalls handelt es sich um die Spalten-ID einer Tabelle. |
grantee_principal_id | int | Datenbankprinzipal-ID, der die Berechtigungen erteilt werden. |
grantor_principal_id | int | Datenbankprinzipal-ID des Berechtigenden dieser Berechtigungen. |
type | char(4) | Datenbank-Berechtigungstyp. Eine Liste der Berechtigungstypen finden Sie in der folgenden Tabelle. |
permission_name | nvarchar(128) | Berechtigungsname. |
state | char(1) | Der Berechtigungsstatus: D = Verweigern R = Aufheben G = Erteilen W = Erteilen mit WITH GRANT OPTION |
state_desc | nvarchar(60) | Beschreibung des Berechtigungsstatus: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Datenbankberechtigungen
Die folgenden Arten von Berechtigungen sind möglich.
Berechtigungstyp | Berechtigungsname | Betroffenes sicherungsfähiges Element |
---|---|---|
AADS | ALTER ANY DATABASE EVENT SESSION | DATABASE |
AAMK | ALTER ANY MASK | DATABASE |
AEDS | ALTER ANY EXTERNAL DATA SOURCE | DATABASE |
AEFF | ALTER ANY EXTERNAL FILE FORMAT | DATABASE |
AL | ALTER | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, USER, XML SCHEMA COLLECTION |
ALAK | ALTER ANY ASYMMETRIC KEY | DATABASE |
ALAR | ALTER ANY APPLICATION ROLE | DATABASE |
ALAS | ALTER ANY ASSEMBLY | DATABASE |
ALCF | ALTER ANY CERTIFICATE | DATABASE |
ALDS | ALTER ANY DATASPACE | DATABASE |
ALED | ALTER ANY DATABASE EVENT NOTIFICATION | DATABASE |
ALFT | ALTER ANY FULLTEXT CATALOG | DATABASE |
ALMT | ALTER ANY MESSAGE TYPE | DATABASE |
ALRL | ALTER ANY ROLE | DATABASE |
ALRT | ALTER ANY ROUTE | DATABASE |
ALSB | ALTER ANY REMOTE SERVICE BINDING | DATABASE |
ALSC | ALTER ANY CONTRACT | DATABASE |
ALSK | ALTER ANY SYMMETRIC KEY | DATABASE |
ALSM | ALTER ANY SCHEMA | DATABASE |
ALSV | ALTER ANY SERVICE | DATABASE |
ALTG | ALTER ANY DATABASE DDL TRIGGER | DATABASE |
ALUS | ALTER ANY USER | DATABASE |
AUTH | AUTHENTICATE | DATABASE |
BADB | BACKUP DATABASE | DATABASE |
BALO | BACKUP LOG | DATABASE |
CL | CONTROL | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
CO | CONNECT | DATABASE |
CORP | CONNECT REPLICATION | DATABASE |
CP | CHECKPOINT | DATABASE |
CRAG | CREATE AGGREGATE | DATABASE |
CRAK | CREATE ASYMMETRIC KEY | DATABASE |
CRAS | CREATE ASSEMBLY | DATABASE |
CRCF | CREATE CERTIFICATE | DATABASE |
CRDB | CREATE DATABASE | DATABASE |
CRDF | CREATE DEFAULT | DATABASE |
CRED | CREATE DATABASE DDL EVENT NOTIFICATION | DATABASE |
CRFN | CREATE FUNCTION | DATABASE |
CRFT | CREATE FULLTEXT CATALOG | DATABASE |
CRMT | CREATE MESSAGE TYPE | DATABASE |
CRPR | CREATE PROCEDURE | DATABASE |
CRQU | CREATE QUEUE | DATABASE |
CRRL | CREATE ROLE | DATABASE |
CRRT | CREATE ROUTE | DATABASE |
CRRU | CREATE RULE | DATABASE |
CRSB | CREATE REMOTE SERVICE BINDING | DATABASE |
CRSC | CREATE CONTRACT | DATABASE |
CRSK | CREATE SYMMETRIC KEY | DATABASE |
CRSM | CREATE SCHEMA | DATABASE |
CRSN | CREATE SYNONYM | DATABASE |
CRSO | Gilt für: SQL Server 2012 (11.x) und höhere Versionen. CREATE SEQUENCE |
DATABASE |
CRSV | CREATE SERVICE | DATABASE |
CRTB | CREATE TABLE | DATABASE |
CRTY | CREATE TYPE | DATABASE |
CRVW | CREATE VIEW | DATABASE |
CRXS | Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen CREATE XML SCHEMA COLLECTION |
DATABASE |
DABO | ADMINISTER DATABASE BULK OPERATIONS | DATABASE |
DL | DELETE | DATABASE, OBJECT, SCHEMA |
EAES | EXECUTE ANY EXTERNAL SCRIPT | DATABASE |
EX | Führen Sie | ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION |
IM | IMPERSONATE | USER |
IN | INSERT | DATABASE, OBJECT, SCHEMA |
RC | RECEIVE | OBJECT |
RF | REFERENCES | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
SL | SELECT | DATABASE, OBJECT, SCHEMA |
SN | SEND | SERVICE |
SPLN | SHOWPLAN | DATABASE |
SUQN | SUBSCRIBE QUERY NOTIFICATIONS | DATABASE |
TO | TAKE OWNERSHIP | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
UP | UPDATE | DATABASE, OBJECT, SCHEMA |
VW | VIEW DEFINITION | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
VWCK | VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | DATABASE |
VWCM | VIEW ANY COLUMN MASTER KEY DEFINITION | DATABASE |
VWCT | VIEW CHANGE TRACKING | TABLE, SCHEMA |
VWDS | VIEW DATABASE STATE | DATABASE |
Berechtigungen
Jedem Benutzer werden die eigenen Berechtigungen angezeigt. Zum Anzeigen der Berechtigungen für andere Benutzer ist VIEW DEFINITION, ALTER ANY USER oder eine Berechtigung für einen Benutzer erforderlich. Zum Anzeigen benutzerdefinierter Rollen ist ALTER ANY ROLE oder die Mitgliedschaft bei der Rolle erforderlich (z. B. public).
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
A. Alle Berechtigungen von Datenbankprinzipalen auflisten
Mit der folgenden Abfrage werden die Berechtigungen aufgelistet, die Datenbankprinzipalen ausdrücklich gewährt oder verweigert wurden.
Wichtig
Die Berechtigungen von festen Datenbankrollen werden in sys.database_permissions
nicht angezeigt. Daher können Datenbankprinzipale über zusätzliche Berechtigungen verfügen, die hier nicht aufgeführt werden.
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. Auflisten von Berechtigungen für Schemaobjekte in einer Datenbank
Die folgende Abfrage verknüpft sys.database_principals und sys.database_permissions
sys.objects und sys.schemas, um Berechtigungen auflisten, die bestimmten Schemaobjekten gewährt oder verweigert wurden.
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. Listenberechtigungen für ein bestimmtes Objekt
Sie können das vorherige Beispiel verwenden, um Berechtigungen abzufragen, die für ein einzelnes Datenbankobjekt spezifisch sind.
Betrachten Sie beispielsweise die folgenden granularen Berechtigungen, die einem Datenbankbenutzer test
in der Beispieldatenbank AdventureWorksDW2022
gewährt werden:
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Suchen Sie die granularen Berechtigungen, die zugewiesen sind: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';
Gibt die Ausgabe zurück:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Siehe auch
- Sicherungsfähige Elemente
- Berechtigungshierarchie (Datenbank-Engine)
- Sicherheitskatalogsichten (Transact-SQL)
- Katalogsichten (Transact-SQL)