Delen via


sys.database_permissions (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft FabricSQL-database in Microsoft Fabric

Retourneert een rij voor elke machtiging of kolom-uitzonderingsmachtiging in de database. Voor kolommen is er een rij voor elke machtiging die verschilt van de bijbehorende machtiging op objectniveau. Als de kolommachtiging hetzelfde is als de bijbehorende objectmachtiging, is er geen rij voor en is de toegepaste machtiging dat van het object.

Belangrijk

Machtigingen op kolomniveau overschrijven machtigingen op objectniveau voor dezelfde entiteit.

Kolomnaam Gegevenstype Beschrijving
klasse kleine Identificeert klasse waarvoor de machtiging bestaat. Zie sys.securable_classes (Transact-SQL)voor meer informatie.

0 = Database
1 = Object of Kolom
3 = Schema
4 = Database-principal
5 = Assembly - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
6 = Type
10 = XML-schemaverzameling -
van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
15 = Berichttype - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
16 = Servicecontract - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
17 = Service - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
18 = Remote Service Binding - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
19 = Route - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
23 =Full-Text Catalogus - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
24 = Symmetrische sleutel - van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
25 = Certificaat - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
26 = Asymmetrische sleutel - van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
29 = Fulltext Stoplist - Van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
31 = Lijst met zoekeigenschappen - van toepassing op: SQL Server 2008 (10.0.x) en latere versies.
32 = Referentie voor databasebereik - van toepassing op: SQL Server 2016 (13.x) en latere versies.
34 = externe taal - van toepassing op: SQL Server 2019 (15.x) en latere versies.
class_desc nvarchar(60) Beschrijving van de klasse waarvoor de machtiging bestaat.

DATABANK

OBJECT_OR_COLUMN

SCHEMA

DATABASE_PRINCIPAL

VERGADERING

TYPE

XML_SCHEMA_COLLECTION

MESSAGE_TYPE

SERVICE_CONTRACT

DIENST

REMOTE_SERVICE_BINDING

ROUTE

FULLTEXT_CATALOG

SYMMETRIC_KEYS

CERTIFICAAT

ASYMMETRIC_KEY

FULLTEXT STOPLIST

LIJST MET EIGENSCHAPPEN ZOEKEN

REFERENTIE VOOR DATABASEBEREIK

EXTERNE TAAL
major_id Id van ding waarvoor de machtiging bestaat, geïnterpreteerd volgens klasse. Meestal is het major_id gewoon het type id dat van toepassing is op wat de klasse vertegenwoordigt.

0 = De database zelf

>0 = Object-IDs voor gebruikersobjecten

<0 = Object-IDs voor systeemobjecten
minor_id Secondary-ID van dingen waarvoor de machtiging bestaat, geïnterpreteerd volgens klasse. Vaak is de minor_id nul, omdat er geen subcategorie beschikbaar is voor de klasse van het object. Anders is het de Column-ID van een tabel.
grantee_principal_id Database-principal-id waaraan de machtigingen worden verleend.
grantor_principal_id Database-principal-id van de grantor van deze machtigingen.
type teken(4) Type databasemachtiging. Zie de volgende tabel voor een lijst met machtigingstypen.
permission_name nvarchar(128) Machtigingsnaam.
status teken(1) Machtigingsstatus:

D = Weigeren

R = Intrekken

G = Toekenning

W = Toekenning met toekenningsoptie
state_desc nvarchar(60) Beschrijving van machtigingsstatus:

ONTKENNEN

INTREKKEN

VERLENEN

GRANT_WITH_GRANT_OPTION

Databasemachtigingen

De volgende typen machtigingen zijn mogelijk.

Machtigingstype Machtigingsnaam Van toepassing op beveiligbaar
AADS EEN GEBEURTENISSESSIE VOOR DE DATABASE WIJZIGEN DATABANK
AAMK EEN MASKER WIJZIGEN DATABANK
AEDS EEN EXTERNE GEGEVENSBRON WIJZIGEN DATABANK
AEFF EVENTUELE EXTERNE BESTANDSINDELINGEN WIJZIGEN DATABANK
AL VERANDEREN TOEPASSINGSROL, 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 ASYMMETRISCHE SLEUTEL WIJZIGEN DATABANK
ALAR ELKE TOEPASSINGSROL WIJZIGEN DATABANK
HELAAS ELKE ASSEMBLY WIJZIGEN DATABANK
ALCF ELK CERTIFICAAT WIJZIGEN DATABANK
ALDS ELKE DATASPACE WIJZIGEN DATABANK
ALED ELKE MELDING VOOR DATABASE-GEBEURTENIS WIJZIGEN DATABANK
ALFT ELKE VOLLEDIGE TEKSTCATALOGUS WIJZIGEN DATABANK
ALMT ELK BERICHTTYPE WIJZIGEN DATABANK
ALRL ELKE ROL WIJZIGEN DATABANK
ALRT ELKE ROUTE WIJZIGEN DATABANK
ALSB EEN EXTERNE SERVICEBINDING WIJZIGEN DATABANK
ALSC EEN CONTRACT WIJZIGEN DATABANK
ALSK ELKE SYMMETRISCHE SLEUTEL WIJZIGEN DATABANK
ALSM EEN SCHEMA WIJZIGEN DATABANK
ALSV ELKE SERVICE WIJZIGEN DATABANK
ALTG EEN DDL-TRIGGER VOOR DATABASES WIJZIGEN DATABANK
ALUS ELKE GEBRUIKER WIJZIGEN DATABANK
AUTH AUTHENTICEREN DATABANK
BADB BACK-UPDATABASE DATABANK
BALO BACK-UPLOGBOEK DATABANK
CL BEHEERSEN TOEPASSINGSROL, ASSEMBLY, ASYMMETRISCHE SLEUTEL, CERTIFICAAT, CONTRACT, DATABASE, FULLTEXT-CATALOGUS, BERICHTTYPE, OBJECT, EXTERNE SERVICEBINDING, ROL, ROUTE, SCHEMA, SERVICE, SYMMETRISCHE SLEUTEL, TYPE, GEBRUIKER, XML-SCHEMAVERZAMELING
CO VERBINDEN DATABANK
CORP VERBINDING MAKEN MET REPLICATIE DATABANK
CP DOORLAATPOST DATABANK
KLIP AGGREGAAT MAKEN DATABANK
CRAK ASYMMETRISCHE SLEUTEL MAKEN DATABANK
CRAS ASSEMBLY MAKEN DATABANK
CRCF CERTIFICAAT MAKEN DATABANK
CRDB DATABASE MAKEN DATABANK
CRDF STANDAARD MAKEN DATABANK
CRED DDL-GEBEURTENISMELDING VOOR DATABASE MAKEN DATABANK
CRFN FUNCTIE MAKEN DATABANK
CRFT VOLLEDIGE TEKSTCATALOGUS MAKEN DATABANK
CRMT BERICHTTYPE MAKEN DATABANK
CRPR PROCEDURE MAKEN DATABANK
CRQU WACHTRIJ MAKEN DATABANK
CRRL ROL MAKEN DATABANK
CRRT ROUTE MAKEN DATABANK
CRRU REGEL MAKEN DATABANK
CRSB EXTERNE SERVICEBINDING MAKEN DATABANK
CRSC CONTRACT MAKEN DATABANK
CRSK SYMMETRISCHE SLEUTEL MAKEN DATABANK
CRSM SCHEMA MAKEN DATABANK
CRSN SYNONIEM MAKEN DATABANK
CRSO Van toepassing op: SQL Server 2012 (11.x) en latere versies.

CREATE SEQUENCE
DATABANK
CRSV CREATE SERVICE DATABANK
CRTB CREATE TABLE DATABANK
CRTY TYPE MAKEN DATABANK
CRVW WEERGAVE MAKEN DATABANK
CRXS van toepassing op: SQL Server 2008 (10.0.x) en latere versies.

XML-SCHEMAVERZAMELING MAKEN
DATABANK
DABO DATABASE BULKBEWERKINGEN BEHEREN DATABANK
DL VERWIJDEREN DATABASE, OBJECT, SCHEMA
EAES EEN EXTERN SCRIPT UITVOEREN DATABANK
EX EXECUTEREN ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION
IM IMITEREN GEBRUIKER
IN INVOEGEN DATABASE, OBJECT, SCHEMA
RC ONTVANGEN OBJECT
RF VERWIJZINGEN ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
SL SELECTEREN DATABASE, OBJECT, SCHEMA
SN VERZENDEN DIENST
SPLN SHOWPLAN DATABANK
SUQN MELDINGEN VOOR ABONNEREN-QUERY'S DATABANK
AAN EIGENAAR ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
OMHOOG UPDATE DATABASE, OBJECT, SCHEMA
VW DEFINITIE WEERGEVEN TOEPASSINGSROL, ASSEMBLY, ASYMMETRISCHE SLEUTEL, CERTIFICAAT, CONTRACT, DATABASE, FULLTEXT-CATALOGUS, BERICHTTYPE, OBJECT, EXTERNE SERVICEBINDING, ROL, ROUTE, SCHEMA, SERVICE, SYMMETRISCHE SLEUTEL, TYPE, GEBRUIKER, XML-SCHEMAVERZAMELING
VWCK ELKE DEFINITIE VAN KOLOMVERSLEUTELINGSSLEUTEL WEERGEVEN DATABANK
VWCM EEN KOLOMHOOFDSLEUTELDEFINITIE WEERGEVEN DATABANK
VWCT WIJZIGINGEN BIJHOUDEN WEERGEVEN TABLE, SCHEMA
VWDS DATABASESTATUS WEERGEVEN DATABANK

Machtigingen voor INTREKKEN en kolom-uitzonderingen

In de meeste gevallen wordt met de opdracht REVOKE de vermelding GRANT of DENY verwijderd uit sys.database_permissions.

Het is echter mogelijk om machtigingen voor een object toe te kennen of te weigeren en vervolgens die machtiging voor een kolom in te trekken. Deze kolom-uitzonderingsmachtiging wordt weergegeven als REVOKE in sys.database_permissions. Bekijk het volgende voorbeeld:

GRANT SELECT ON Person.Person TO [Sales];

REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];

Deze machtigingen worden weergegeven in sys.database_permissions als één GRANT (in de tabel) en één REVOKE (in de kolom).

Belangrijk

REVOKE verschilt van DENY, omdat de Sales-principal nog steeds toegang heeft tot de kolom via andere machtigingen. Als we machtigingen hadden geweigerd in plaats van ze af te roepen, konden Sales de inhoud van de kolom niet weergeven omdat DENY altijd grant vervangt.

Machtigingen

Elke gebruiker kan zijn eigen machtigingen zien. Als u machtigingen voor andere gebruikers wilt zien, moet u VIEW DEFINITION, ALTER ANY USER of een machtiging voor een gebruiker hebben. Als u door de gebruiker gedefinieerde rollen wilt zien, moet u ALTER ANY ROLE of lidmaatschap van de rol (zoals openbaar) hebben.

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden

Een. Alle machtigingen van database-principals weergeven

In de volgende query worden de machtigingen vermeld die expliciet aan database-principals zijn verleend of geweigerd.

Belangrijk

De machtigingen van vaste databaserollen worden niet weergegeven in sys.database_permissions. Database-principals hebben daarom mogelijk aanvullende machtigingen die hier niet worden vermeld.

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. Lijstmachtigingen voor schemaobjecten in een database

Met de volgende query worden sys.database_principals en sys.database_permissions toegevoegd aan sys.objects en sys.schema's om machtigingen weer te geven die aan specifieke schemaobjecten zijn verleend of geweigerd.

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. Lijstmachtigingen voor een specifiek object

U kunt het vorige voorbeeld gebruiken om query's uit te voeren op machtigingen die specifiek zijn voor één databaseobject.

Denk bijvoorbeeld aan de volgende gedetailleerde machtigingen die zijn verleend aan een databasegebruiker test in de voorbeelddatabaseAdventureWorksDW2022:

GRANT SELECT ON dbo.vAssocSeqOrders TO [test];

Zoek de gedetailleerde machtigingen die zijn toegewezen aan 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';

Retourneert de uitvoer:

principal_id    name    type_desc    authentication_type_desc    state_desc    permission_name    ObjectName
5    test    SQL_USER    INSTANCE    GRANT    SELECT    dbo.vAssocSeqOrders

Zie ook

Volgende stappen