sys.database_permissions (Transact-SQL)
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar en rad för varje behörighet eller kolumn-undantagsbehörighet i databasen. För kolumner finns det en rad för varje behörighet som skiljer sig från motsvarande behörighet på objektnivå. Om kolumnbehörigheten är samma som motsvarande objektbehörighet finns det ingen rad för den och den behörighet som tillämpas är objektets.
Viktig
Behörigheter på kolumnnivå åsidosätter behörigheter på objektnivå på samma entitet.
Kolumnnamn | Datatyp | Beskrivning |
---|---|---|
klass | pytteliten | Identifierar klassen där behörigheten finns. Mer information finns i sys.securable_classes (Transact-SQL). 0 = Databas 1 = Objekt eller kolumn 3 = Schema 4 = Huvudnamn för databasen 5 = Sammansättning – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 6 = Typ 10 = XML-schemasamling – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 15 = Meddelandetyp – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 16 = Tjänstkontrakt – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 17 = Tjänst – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 18 = Fjärrtjänstbindning – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 19 = Route – Gäller för: SQL Server 2008 (10.0.x) och senare versioner. 23 =Full-Text Catalog – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 24 = Symmetrisk nyckel – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 25 = Certifikat – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 26 = Asymmetrisk nyckel – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 29 = Fulltext Stoplist – Gäller för: SQL Server 2008 (10.0.x) och senare versioner. 31 = Sökegenskapslista – gäller för: SQL Server 2008 (10.0.x) och senare versioner. 32 = Databasomfattande autentiseringsuppgifter – gäller för: SQL Server 2016 (13.x) och senare versioner. 34 = Externt språk – gäller för: SQL Server 2019 (15.x) och senare versioner. |
class_desc | nvarchar(60) | Beskrivning av klassen där behörigheten finns. DATABAS OBJECT_OR_COLUMN SCHEMAT DATABASE_PRINCIPAL FÖRSAMLING TYP XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT TJÄNST REMOTE_SERVICE_BINDING VÄG FULLTEXT_CATALOG SYMMETRIC_KEYS INTYG ASYMMETRIC_KEY STOPPLISTA FÖR FULLTEXT SÖK EGENSKAPSLISTA DATABASOMFÅNGSBEGRÄNSADE AUTENTISERINGSUPPGIFTER EXTERNT SPRÅK |
major_id | int | ID för det som behörigheten finns på, tolkat enligt klass. Vanligtvis major_id helt enkelt den typ av ID som gäller för vad klassen representerar. 0 = Själva databasen >0 = Object-IDs för användarobjekt <0 = Object-IDs för systemobjekt |
minor_id | int | Secondary-ID av det som behörigheten finns på, tolkad enligt klass. Ofta är minor_id noll, eftersom det inte finns någon underkategori tillgänglig för objektklassen. Annars är det en tabells Column-ID. |
grantee_principal_id | int | Databashuvudnamns-ID som behörigheterna beviljas till. |
grantor_principal_id | int | Huvud-ID för databasen för den som beviljar dessa behörigheter. |
typ | tecken(4) | Databasbehörighetstyp. En lista över behörighetstyper finns i nästa tabell. |
permission_name | nvarchar(128) | Behörighetsnamn. |
tillstånd | tecken(1) | Behörighetstillstånd: D = Neka R = Återkalla G = Bevilja W = Bevilja med beviljandealternativ |
state_desc | nvarchar(60) | Beskrivning av behörighetstillstånd: NEKA ÅTERKALLA BEVILJA GRANT_WITH_GRANT_OPTION |
Databasbehörigheter
Följande typer av behörigheter är möjliga.
Behörighetstyp | Behörighetsnamn | Gäller för skyddsbara |
---|---|---|
AADS | ÄNDRA EN DATABASHÄNDELSESESSION | DATABAS |
AAMK | ÄNDRA VALFRI MASK | DATABAS |
AEDS | ÄNDRA ALLA EXTERNA DATAKÄLLOR | DATABAS |
AEFF | ÄNDRA VALFRITT EXTERNT FILFORMAT | DATABAS |
AL | ÄNDRA | PROGRAMROLL, SAMMANSÄTTNING, ASYMMETRISK NYCKEL, CERTIFIKAT, KONTRAKT, DATABAS, FULLTEXTKATALOG, MEDDELANDETYP, OBJEKT, FJÄRRTJÄNSTBINDNING, ROLL, VÄG, SCHEMA, TJÄNST, SYMMETRISK NYCKEL, ANVÄNDARE, XML-SCHEMASAMLING |
ALAK | ÄNDRA ASYMMETRISK NYCKEL | DATABAS |
ALAR | ÄNDRA VILKEN PROGRAMROLL SOM HELST | DATABAS |
TYVÄRR | ÄNDRA ALLA SAMMANSÄTTNINGAR | DATABAS |
ALCF | ÄNDRA ALLA CERTIFIKAT | DATABAS |
ALDS | ÄNDRA ALLA DATARYMDER | DATABAS |
ALED | ÄNDRA EVENTUELLA DATABASHÄNDELSEMEDDELANDEN | DATABAS |
ALFT | ÄNDRA ALLA FULLTEXTKATALOGER | DATABAS |
ALMT | ÄNDRA VALFRI MEDDELANDETYP | DATABAS |
ALRL | ÄNDRA VILKEN ROLL SOM HELST | DATABAS |
ALRT | ÄNDRA VALFRI VÄG | DATABAS |
ALSB | ÄNDRA ALLA FJÄRRTJÄNSTBINDNINGAR | DATABAS |
ALSC | ÄNDRA ALLA KONTRAKT | DATABAS |
ALSK | ÄNDRA EN SYMMETRISK NYCKEL | DATABAS |
ALSM | ÄNDRA VALFRITT SCHEMA | DATABAS |
ALSV | ÄNDRA ALLA TJÄNSTER | DATABAS |
ALTG | ÄNDRA VALFRI DATABAS-DDL-UTLÖSARE | DATABAS |
ALUS | ÄNDRA ALLA ANVÄNDARE | DATABAS |
AUTH | STYRKA | DATABAS |
BADB | SÄKERHETSKOPIERINGSDATABAS | DATABAS |
BALO | SÄKERHETSKOPIERINGSLOGG | DATABAS |
CL | KONTROLL | PROGRAMROLL, SAMMANSÄTTNING, ASYMMETRISK NYCKEL, CERTIFIKAT, KONTRAKT, DATABAS, FULLTEXTKATALOG, MEDDELANDETYP, OBJEKT, FJÄRRTJÄNSTBINDNING, ROLL, VÄG, SCHEMA, TJÄNST, SYMMETRISK NYCKEL, TYP, ANVÄNDARE, XML-SCHEMASAMLING |
CO | ANSLUTA | DATABAS |
CORP | ANSLUT REPLIKERING | DATABAS |
CP | KONTROLLPUNKT | DATABAS |
CRAG | SKAPA AGGREGERING | DATABAS |
CRAK | SKAPA ASYMMETRISK NYCKEL | DATABAS |
CRAS | SKAPA SAMMANSÄTTNING | DATABAS |
CRCF | SKAPA CERTIFIKAT | DATABAS |
CRDB | SKAPA DATABAS | DATABAS |
CRDF | SKAPA STANDARD | DATABAS |
CRED | SKAPA HÄNDELSEMEDDELANDE FÖR DATABAS-DDL | DATABAS |
CRFN | SKAPA FUNKTION | DATABAS |
CRFT | SKAPA FULLTEXTKATALOG | DATABAS |
CRMT | SKAPA MEDDELANDETYP | DATABAS |
CRPR | SKAPA PROCEDUR | DATABAS |
CRQU | SKAPA KÖ | DATABAS |
CRRL | SKAPA ROLL | DATABAS |
CRRT | SKAPA VÄG | DATABAS |
CRRU | SKAPA REGEL | DATABAS |
CRSB | SKAPA FJÄRRTJÄNSTBINDNING | DATABAS |
CRSC | SKAPA KONTRAKT | DATABAS |
CRSK | SKAPA SYMMETRISK NYCKEL | DATABAS |
CRSM | SKAPA SCHEMA | DATABAS |
CRSN | SKAPA SYNONYM | DATABAS |
CRSO |
gäller för: SQL Server 2012 (11.x) och senare versioner. SKAPA SEKVENS |
DATABAS |
CRSV | SKAPA TJÄNST | DATABAS |
CRTB | SKAPA TABELL | DATABAS |
CRTY | SKAPA TYP | DATABAS |
CRVW | SKAPA VY | DATABAS |
CRXS |
gäller för: SQL Server 2008 (10.0.x) och senare versioner. SKAPA XML-SCHEMASAMLING |
DATABAS |
DABO | ADMINISTRERA MASSÅTGÄRDER FÖR DATABASER | DATABAS |
DECILITER | TA BORT | DATABAS, OBJEKT, SCHEMA |
EAES | KÖRA ETT EXTERNT SKRIPT | DATABAS |
EX | UTFÖRA | SAMMANSÄTTNING, DATABAS, OBJEKT, SCHEMA, TYP, XML-SCHEMASAMLING |
IM | PERSONIFIERA | ANVÄNDARE |
I | INFOGA | DATABAS, OBJEKT, SCHEMA |
RC | MOTTAGA | OBJEKT |
RF | REFERENSER | SAMMANSÄTTNING, ASYMMETRISK NYCKEL, CERTIFIKAT, KONTRAKT, DATABAS, FULLTEXTKATALOG, MEDDELANDETYP, OBJEKT, SCHEMA, SYMMETRISK NYCKEL, TYP, XML-SCHEMASAMLING |
SL | UTVALD | DATABAS, OBJEKT, SCHEMA |
SN | SÄNDA | TJÄNST |
SPLN | SHOWPLAN | DATABAS |
SUQN | PRENUMERERA PÅ FRÅGEMEDDELANDEN | DATABAS |
TILL | TA ÄGARSKAP | SAMMANSÄTTNING, ASYMMETRISK NYCKEL, CERTIFIKAT, KONTRAKT, DATABAS, FULLTEXTKATALOG, MEDDELANDETYP, OBJEKT, FJÄRRTJÄNSTBINDNING, ROLL, VÄG, SCHEMA, TJÄNST, SYMMETRISK NYCKEL, TYP, XML-SCHEMASAMLING |
UPP | UPPDATERA | DATABAS, OBJEKT, SCHEMA |
VW | VISA DEFINITION | PROGRAMROLL, SAMMANSÄTTNING, ASYMMETRISK NYCKEL, CERTIFIKAT, KONTRAKT, DATABAS, FULLTEXTKATALOG, MEDDELANDETYP, OBJEKT, FJÄRRTJÄNSTBINDNING, ROLL, VÄG, SCHEMA, TJÄNST, SYMMETRISK NYCKEL, TYP, ANVÄNDARE, XML-SCHEMASAMLING |
VWCK | VISA VALFRI KOLUMNKRYPTERINGSNYCKELDEFINITION | DATABAS |
VWCM | VISA VALFRI KOLUMNHUVUDNYCKELDEFINITION | DATABAS |
VWCT | VISA ÄNDRINGSSPÅRNING | TABELL, SCHEMA |
VWDS | VISA DATABASTILLSTÅND | DATABAS |
Behörigheter för ÅTERKALLA och kolumn-undantag
I de flesta fall tar kommandot REVOKE bort posten GRANT eller DENY från sys.database_permissions.
Det är dock möjligt att bevilja eller neka behörigheter för ett objekt och sedan ÅTERKALLA behörigheten för en kolumn. Den här behörigheten för kolumnfel visas som ÅTERKALLA i sys.database_permissions. Tänk på följande exempel:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Dessa behörigheter visas i sys.database_permissions som ett GRANT (i tabellen) och en REVOKE (i kolumnen).
Viktig
ÅTERKALLA skiljer sig från NEKA eftersom Sales
huvudnamn fortfarande kan ha åtkomst till kolumnen via andra behörigheter. Om vi hade nekat behörigheter i stället för att återkalla dem skulle Sales
inte kunna visa innehållet i kolumnen eftersom DENY alltid ersätter GRANT.
Behörigheter
Alla användare kan se sina egna behörigheter. Om du vill se behörigheter för andra användare kräver DU VIEW DEFINITION, ALTER ANY USER eller någon behörighet för en användare. Om du vill se användardefinierade roller måste du ändra valfri roll eller medlemskap i rollen (till exempel offentlig).
Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. Mer information finns i konfiguration av metadatasynlighet.
Exempel
A. Visa en lista över alla behörigheter för databasobjekt
I följande fråga visas de behörigheter som uttryckligen beviljas eller nekas till databashuvudnamn.
Viktig
Behörigheterna för fasta databasroller visas inte i sys.database_permissions
. Därför kan databashuvudnamn ha ytterligare behörigheter som inte visas här.
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. Visa behörigheter för schemaobjekt i en databas
Följande fråga kopplar sys.database_principals och sys.database_permissions
till sys.objects och sys.schemas för att visa behörigheter som beviljats eller nekats till specifika schemaobjekt.
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. Visa en lista över behörigheter för ett specifikt objekt
Du kan använda föregående exempel för att fråga efter behörigheter som är specifika för ett enskilt databasobjekt.
Överväg till exempel följande detaljerade behörigheter som beviljats en databasanvändare test
i exempeldatabasenAdventureWorksDW2022
:
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Hitta de detaljerade behörigheter som tilldelats 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';
Returnerar utdata:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Se även
- Securables
- behörighetshierarki (databasmotor)
- säkerhetskatalogvyer (Transact-SQL)
- katalogvyer (Transact-SQL)