Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus 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.
Important
Berechtigungen auf Spaltenebene überschreiben Berechtigungen auf Objektebene in derselben Entität.
| Spaltenname | Datentyp | Description |
|---|---|---|
| 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 VOLLTEXT-STOPPLISTE Immobilienliste durchsuchen DATENBANKBEREICHSBEZOGENE ANMELDEINFORMATIONEN FREMDSPRACHE |
| 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) | Erlaubnisname. |
| state | char(1) | Erlaubnis: 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 | ÄNDERN EINER DATENBANK-EREIGNISSESSION | DATABASE |
| AAMK | BELIEBIGE MASKE ÄNDERN | DATABASE |
| AEDS | ÄNDERE JEDE EXTERNE DATENQUELLE | DATABASE |
| AEFF | ÄNDERN EINES BELIEBIGEN EXTERNEN DATEIFORMATS | DATABASE |
| AL | ALTER | ANWENDUNGSROLLE, ASSEMBLY, ASYMMETRISCHER SCHLÜSSEL, ZERTIFIKAT, VERTRAG, DATENBANK, FULLTEXT-KATALOG, NACHRICHTENTYP, OBJEKT, REMOTEDIENSTBINDUNG, ROLLE, ROUTE, SCHEMA, DIENST, SYMMETRIC KEY, USER, XML SCHEMA COLLECTION |
| ALAK | ÄNDERN EINES ASYMMETRISCHEN SCHLÜSSELS | DATABASE |
| ALAR | ÄNDERN EINER BELIEBIGEN ANWENDUNGSROLLE | DATABASE |
| ALAS | BELIEBIGE ASSEMBLY ÄNDERN | DATABASE |
| ALCF | ÄNDERN EINES BELIEBIGEN ZERTIFIKATS | DATABASE |
| ALDS | ÄNDERN EINES BELIEBIGEN DATENBEREICHS | DATABASE |
| ALED | Benachrichtigungen zu Datenbankereignissen ändern | DATABASE |
| ALFT | ÄNDERN EINES VOLLSTÄNDIGEN TEXTKATALOGS | DATABASE |
| ALMT | ÄNDERN EINES BELIEBIGEN NACHRICHTENTYPS | DATABASE |
| ALRL | ÄNDERN EINER BELIEBIGEN ROLLE | DATABASE |
| ALRT | ÄNDERN EINER BELIEBIGEN ROUTE | DATABASE |
| ALSB | ÄNDERN JEDER REMOTE-DIENST-BINDUNG | DATABASE |
| ALSC | ÄNDERN EINES VERTRAGS | DATABASE |
| ALSK | ÄNDERN EINES SYMMETRISCHEN SCHLÜSSELS | DATABASE |
| ALSM | ÄNDERN EINES BELIEBIGEN SCHEMAS | DATABASE |
| ALSV | ÄNDERE JEDEN DIENST | DATABASE |
| ALTG | ÄNDERN EINES DATENBANK-DDL-TRIGGERS | DATABASE |
| ALUS | ÄNDERN EINES BELIEBIGEN BENUTZERS | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | SICHERUNGSDATENBANK | DATABASE |
| BALO | SICHERUNGSPROTOKOLL | DATABASE |
| CL | CONTROL | ANWENDUNGSROLLE, ASSEMBLY, ASYMMETRISCHER SCHLÜSSEL, ZERTIFIKAT, VERTRAG, DATENBANK, FULLTEXT-KATALOG, NACHRICHTENTYP, OBJEKT, REMOTEDIENSTBINDUNG, ROLLE, ROUTE, SCHEMA, DIENST, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | VERBINDUNGSREPLIKATION | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | AGGREGAT ERSTELLEN | DATABASE |
| CRAK | ERSTELLEN EINES ASYMMETRISCHEN SCHLÜSSELS | DATABASE |
| CRAS | CREATE ASSEMBLY (Erstellen einer Assembly) | DATABASE |
| CRCF | ZERTIFIKAT ERSTELLEN | DATABASE |
| CRDB | DATENBANK ERSTELLEN | DATABASE |
| CRDF | STANDARD ERSTELLEN | DATABASE |
| CRED | CREATE-DATABASE-DDL-Ereignisbenachrichtigung | DATABASE |
| CRFN | CREATE-FUNKTION | DATABASE |
| CRFT | FULLTEXT-KATALOG ERSTELLEN | DATABASE |
| CRMT | NACHRICHTENTYP ERSTELLEN | DATABASE |
| CRPR | PROZEDUR ERSTELLEN | DATABASE |
| CRQU | WARTESCHLANGE ERSTELLEN | DATABASE |
| CRRL | ROLLE ERSTELLEN | DATABASE |
| CRRT | ROUTE ERSTELLEN | DATABASE |
| CRRU | REGEL ERSTELLEN | DATABASE |
| CRSB | ERSTELLEN EINER REMOTE-DIENSTBINDUNG | DATABASE |
| CRSC | VERTRAG ERSTELLEN | DATABASE |
| CRSK | SYMMETRISCHER SCHLÜSSEL ERSTELLEN | DATABASE |
| CRSM | SCHEMA ERSTELLEN | DATABASE |
| CRSN | SYNONYM ERSTELLEN | DATABASE |
| CRSO |
Gilt für: SQL Server 2012 (11.x) und höhere Versionen. SEQUENZ ERSTELLEN |
DATABASE |
| CRSV | DIENST ERSTELLEN | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | TYPE ERSTELLEN | DATABASE |
| CRVW | ANSICHT ERSTELLEN | DATABASE |
| CRXS |
Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen ERSTELLEN EINER XML-SCHEMAAUFLISTUNG |
DATABASE |
| DABO | VERWALTEN VON BULK-OPERATIONEN IN DER DATENBANK | DATABASE |
| DL | DELETE | DATENBANK, OBJEKT, SCHEMA |
| EAES | AUSFÜHREN EINES BELIEBIGEN EXTERNEN SKRIPTS | DATABASE |
| EX | EXECUTE | ASSEMBLER-, DATENBANK-, OBJEKT-, SCHEMA-, TYP-, XML-SCHEMASAMMLUNG |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATENBANK, OBJEKT, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, ASYMMETRISCHER SCHLÜSSEL, ZERTIFIKAT, VERTRAG, DATENBANK, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
| SL | SELECT | DATENBANK, OBJEKT, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | ABONNIEREN VON ABFRAGEBENACHRICHTIGUNGEN | DATABASE |
| TO | ÜBERNEHMEN EIGENTUM | ASSEMBLY, ASYMMETRISCHER SCHLÜSSEL, ZERTIFIKAT, VERTRAG, DATENBANK, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
| UP | UPDATE | DATENBANK, OBJEKT, SCHEMA |
| VW | Darstellungsdefinition | ANWENDUNGSROLLE, ASSEMBLY, ASYMMETRISCHER SCHLÜSSEL, ZERTIFIKAT, VERTRAG, DATENBANK, FULLTEXT-KATALOG, NACHRICHTENTYP, OBJEKT, REMOTEDIENSTBINDUNG, ROLLE, ROUTE, SCHEMA, DIENST, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
| VWCK | ANZEIGEN EINER BELIEBIGEN SPALTENVERSCHLÜSSELUNGSSCHLÜSSELDEFINITION | DATABASE |
| VWCM | ANZEIGE JEDER SPALTEN-MASTERSCHLÜSSELDEFINITION | DATABASE |
| VWCT | ÄNDERUNGSNACHVERFOLGUNG ANZEIGEN | TABELLE, SCHEMA |
| VWDS | DATENBANKSTATUS ANZEIGEN | DATABASE |
REVOKE- und Spalten-Ausnahmeberechtigungen
In den meisten Fällen entfernt der Befehl REVOKE den GRANT- oder DENY-Eintrag aus sys.database_permissions.
Es ist jedoch möglich, Berechtigungen für ein Objekt zu erteilen oder zu verweigern und diese Berechtigung für eine Spalte zu widerrufen. Diese Spalten-Ausnahmeberechtigung wird in sys.database_permissions als REVOKE angezeigt. Betrachten Sie das folgende Beispiel:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Diese Berechtigungen werden in sys.database_permissions als ein GRANT (in der Tabelle) und ein REVOKE (in der Spalte) angezeigt.
Important
REVOKE unterscheidet sich von DENY, da der Sales Prinzipal weiterhin Zugriff auf die Spalte über andere Berechtigungen hat. Hatten wir Berechtigungen verweigert, anstatt sie zu widerrufen, konnte Sales den Inhalt der Spalte nicht anzeigen, da DENY immer GRANT ersetzt.
Permissions
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.
Examples
A. Alle Berechtigungen von Datenbankprinzipalen auflisten
Mit der folgenden Abfrage werden die Berechtigungen aufgelistet, die Datenbankprinzipalen ausdrücklich gewährt oder verweigert wurden.
Important
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_permissionssys.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 BeispieldatenbankAdventureWorksDW2025gewä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
- Securables
- Berechtigungshierarchie (Datenbank-Engine)
- Sicherheitskatalogsichten (Transact-SQL)
- Katalogsichten (Transact-SQL)