sys.database_permissions (Transact-SQL)
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 verwendet.
Wichtig |
---|
Berechtigungen auf Spaltenebene überschreiben Berechtigungen auf Objektebene in derselben Entität. |
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
Klasse |
tinyint |
Identifiziert die Klasse, in der die Berechtigung vorhanden ist. 0 = Datenbank 1 = Objekt oder Spalte 3 = Schema 4 = Datenbankprinzipal 5 = Assembly 6 = Typ 10 = XML-Schemaauflistung 15 = Nachrichtentyp 16 = Dienstvertrag 17 = Dienst 18 = Remotedienstbindung 19 = Route 23 = Volltextkatalog 24 = Symmetrischer Schlüssel 25 = Zertifikat 26 = Asymmetrischer Schlüssel |
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_KEY CERTIFICATE ASYMMETRIC_KEY |
major_id |
int |
ID des Objekts, für das die Berechtigung vorhanden ist, interpretiert nach der Klasse. Meist ist dies die Art der ID, die die Klasse darstellt. IDs, die nicht dem Standard entsprechen, werden wie folgt interpretiert: 0 = Immer 0 1 = Objekt-ID Negative IDs werden Systemobjekten zugewiesen. |
minor_id |
int |
Sekundäre ID des Objekts, für das die Berechtigung vorhanden ist, interpretiert nach der Klasse. Meist ist dies Null. Andernfalls gibt es folgenden Wert: 1 = Spalten-ID für eine Spalte. Andernfalls 0, falls es sich um ein Objekt handelt. |
grantee_principal_id |
int |
Datenbankprinzipal-ID, der die Berechtigungen erteilt werden. |
grantor_principal_id |
int |
Datenbankprinzipal-ID des Berechtigenden dieser Berechtigungen. |
Typ |
char(4) |
Datenbank-Berechtigungstyp. Ein Liste der Berechtigungstypen finden Sie in der nächsten Tabelle. |
permission_name |
nvarchar(128) |
Berechtigungsname. |
state |
char(1) |
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 |
Berechtigungstyp |
Berechtigungsname |
Betroffenes sicherungsfähiges Element |
---|---|---|
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 |
CREATE SEQUENCE |
DATABASE |
CRSV |
CREATE SERVICE |
DATABASE |
CRTB |
CREATE TABLE |
DATABASE |
CRTY |
CREATE TYPE |
DATABASE |
CRVW |
CREATE VIEW |
DATABASE |
CRXS |
CREATE XML SCHEMA COLLECTION |
DATABASE |
DL |
DELETE |
DATABASE, OBJECT, SCHEMA |
EX |
EXECUTE |
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 |
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 Konfigurieren der Sichtbarkeit von Metadaten.
Beispiele
A: Auflisten aller Berechtigungen von Datenbankprinzipalen
Mit der folgenden Abfrage werden die Berechtigungen aufgelistet, die Datenbankprinzipalen ausdrücklich gewährt oder verweigert wurden.
Wichtig |
---|
Die Berechtigungen von festen Datenbankrollen werden nicht in sys.database_permissions aufgeführt. 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
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
G. Auflisten von Berechtigungen für Schemaobjekte in einer Datenbank
Die folgende Abfrage verknüpft sys.database_principals und sys.database_permissions mit sys.objects und sys.schemas, um Berechtigungen aufzulisten, 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
JOIN sys.database_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
ON pe.major_id = o.object_id
JOIN sys.schemas AS s
ON o.schema_id = s.schema_id;
Siehe auch
Verweis
Sicherheitskatalogsichten (Transact-SQL)