sys.database_permissions (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL-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
- beveiligbare
- Machtigingshiërarchie (Database Engine)
- beveiligingscatalogusweergaven (Transact-SQL)
- catalogusweergaven (Transact-SQL)
Volgende stappen
- een machtiging verlenen aan een principal-
-
GRANT (Transact-SQL)