sys.database_permissions (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy sort ad vissza az adatbázis minden engedélyéhez vagy oszlopkivételi engedélyéhez. Oszlopok esetén minden engedélynek van egy sora, amely eltér a megfelelő objektumszintű engedélytől. Ha az oszlopengedély megegyezik a megfelelő objektum engedélyével, nincs rá sor, és az alkalmazott engedély az objektumra vonatkozik.

Important

Az oszlopszintű engedélyek felülbírálják az objektumszintű engedélyeket ugyanazon az entitáson.

Oszlop név Adattípus Description
class tinyint Azonosítja azokat az osztályokat, amelyeken az engedély létezik. További információ: sys.securable_classes (Transact-SQL).

0 = Adatbázis
1 = Objektum vagy oszlop
3 = Séma
4 = Adatbázisnév
5 = Szerelvény – Az: SQL Server 2008 (10.0.x) és újabb verziók.
6 = Típus
10 = XML-sémagyűjtemény –
A: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
15 = Üzenettípus – A: SQL Server 2008 (10.0.x) és újabb verziók.
16 = Szolgáltatási szerződés – Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
17 = Szolgáltatás – Az: SQL Server 2008 (10.0.x) és újabb verziók.
18 = Távoli szolgáltatáskötés – A: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
19 = Útvonal – A következővonatkozik: SQL Server 2008 (10.0.x) és újabb verziók.
23 =Full-Text katalógus – Az SQL Server 2008 (10.0.x) és újabb verziókvonatkozik.
24 = Szimmetrikus kulcs – A: SQL Server 2008 (10.0.x) és újabb verziók.
25 = Tanúsítvány – A: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
26 = Aszimmetrikus kulcs – A: SQL Server 2008 (10.0.x) és újabb verziók.
29 = Teljes szöveges stoplista – A: SQL Server 2008 (10.0.x) és újabb verziók.
31 = Keresési tulajdonságlista – : SQL Server 2008 (10.0.x) és újabb verziók.
32 = Adatbázis-hatókörű hitelesítő adatok – Az: SQL Server 2016 (13.x) és újabb verziókra vonatkozik.
34 = Külső nyelv – : SQL Server 2019 (15.x) és újabb verziók.
class_desc nvarchar(60) Az osztály leírása, amelyen az engedély létezik.

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

FULLTEXT STOPLIST

SEARCH PROPERTY LIST

DATABASE SCOPED CREDENTIAL

EXTERNAL LANGUAGE
major_id int Annak a dolognak az azonosítója, amelyre az engedély létezik, az osztály szerint értelmezve. A major_id általában az osztály által képviselt azonosító típusára vonatkozik.

0 = Maga az adatbázis

>0 = Object-IDs felhasználói objektumokhoz

<0 = Object-IDs rendszerobjektumokhoz
minor_id int Secondary-ID dolog, amelyre az engedély létezik, osztály szerint értelmezve. A minor_id gyakran nulla, mert az objektumosztályhoz nem érhető el alkategória. Ellenkező esetben ez egy tábla Column-ID.
grantee_principal_id int Az adatbázis egyszerű azonosítója, amelyhez az engedélyek meg vannak adva.
grantor_principal_id int Az engedélyek engedélyezőjének egyszerű adatbázis-azonosítója.
type char(4) Adatbázis-engedély típusa. Az engedélytípusok listáját a következő táblázatban találja.
permission_name nvarchar(128) Engedély név.
state char(1) Az engedély kiállása:

D = Megtagadás

R = Visszavonás

G = Engedélyezés

W = Támogatás támogatási opcióval
state_desc nvarchar(60) Az engedélyállapot leírása:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

Adatbázis-engedélyek

A következő típusú engedélyek lehetségesek.

Engedély típusa Engedély neve Biztonságosra vonatkozik
AADS VÁLTOZTASD DATABASEEVENT SESSION DATABASE
AAMK BÁRMELY MASZK MÓDOSÍTÁSA DATABASE
AEDS BÁRMELY EXTERNAL DATA SOURCE MÓDOSÍTÁSA DATABASE
AEFF BÁRMELY EXTERNAL FILE FORMAT MÓDOSÍTÁSA DATABASE
AL ALTER APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CERTIFICATE, CONTRACTDATABASEFULLTEXT CATALOGMESSAGE TYPE, , , REMOTE SERVICE BINDINGROLEROUTESCHEMASERVICESYMMETRIC KEYUSERXML SCHEMA COLLECTION
ALAK BÁRMELY ASYMMETRIC KEY MÓDOSÍTÁSA DATABASE
ALAR BÁRMELY APPLICATION ROLE MÓDOSÍTÁSA DATABASE
ALAS BÁRMELY ASSEMBLY MÓDOSÍTÁSA DATABASE
ALCF BÁRMELY CERTIFICATE MÓDOSÍTÁSA DATABASE
ALDS BÁRMELY ADATTÉR MÓDOSÍTÁSA DATABASE
ALED VÁLTOZTASD DATABASEEVENT NOTIFICATION DATABASE
ALFT BÁRMELY FULLTEXT CATALOG MÓDOSÍTÁSA DATABASE
ALMT BÁRMELY MESSAGE TYPE MÓDOSÍTÁSA DATABASE
ALRL BÁRMELY ROLE MÓDOSÍTÁSA DATABASE
ALRT BÁRMELY ROUTE MÓDOSÍTÁSA DATABASE
ALSB BÁRMELY REMOTE SERVICE BINDING MÓDOSÍTÁSA DATABASE
ALSC BÁRMELY CONTRACT MÓDOSÍTÁSA DATABASE
ALSK BÁRMELY SYMMETRIC KEY MÓDOSÍTÁSA DATABASE
ALSM BÁRMELY SCHEMA MÓDOSÍTÁSA DATABASE
ALSV BÁRMELY SERVICE MÓDOSÍTÁSA DATABASE
ALTG VÁLTOZTASS BÁRMILYEN DATABASE DDL-T TRIGGER DATABASE
ALUS BÁRMELY USER MÓDOSÍTÁSA DATABASE
AUTH AUTHENTICATE DATABASE
BADB BACKUP DATABASE DATABASE
BALO BACKUP NAPLÓ DATABASE
CL CONTROL APPLICATION ROLE, ASSEMBLY, , , ASYMMETRIC KEY, CERTIFICATECONTRACTDATABASEFULLTEXT CATALOG, , , MESSAGE TYPEREMOTE SERVICE BINDINGROLEROUTESCHEMASERVICESYMMETRIC KEYTYPE, , USERXML SCHEMA COLLECTION
CO CONNECT DATABASE
CORP KAPCSOLÓDJ REPLIKÁCIÓ 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 A: SQL Server 2012 (11.x) és újabb verziókra vonatkozik.

CREATE SEQUENCE
DATABASE
CRSV CREATE SERVICE DATABASE
CRTB CREATE TABLE DATABASE
CRTY CREATE TYPE DATABASE
CRVW CREATE VIEW DATABASE
CRXS A: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.

CREATE XML SCHEMA COLLECTION
DATABASE
DABO TÖMEGES MŰVELETEK IRÁNYÍTÁSA DATABASE DATABASE
DL DELETE DATABASE, TÁRGY, SCHEMA
EAES BÁRMELY KÜLSŐ SZKRIPT VÉGREHAJTÁSA DATABASE
EX EXECUTE ASSEMBLY, DATABASE, OBJEKTUM, SCHEMA, TYPE, XML SCHEMA COLLECTION
IM IMPERSONATE USER
IN INSERT DATABASE, TÁRGY, SCHEMA
RC RECEIVE OBJECT
RF REFERENCES ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASEFULLTEXT CATALOGMESSAGE TYPE, OBJEKTUM, SCHEMA, SYMMETRIC KEYTYPE, ,XML SCHEMA COLLECTION
SL SELECT DATABASE, TÁRGY, SCHEMA
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN FELIRATKOZÁSI LEKÉRDEZÉSI ÉRTESÍTÉSEK DATABASE
TO VEGYÉK ÁT A TULAJDONJOGOT ASSEMBLY, ASYMMETRIC KEY, , , CERTIFICATECONTRACT, DATABASE, FULLTEXT CATALOG, , MESSAGE TYPEREMOTE SERVICE BINDINGROLEROUTESCHEMASERVICESYMMETRIC KEYTYPEXML SCHEMA COLLECTION
UP UPDATE DATABASE, TÁRGY, SCHEMA
VW VIEW MEGHATÁROZÁS APPLICATION ROLE, ASSEMBLY, , , ASYMMETRIC KEY, CERTIFICATECONTRACTDATABASEFULLTEXT CATALOG, , , MESSAGE TYPEREMOTE SERVICE BINDINGROLEROUTESCHEMASERVICESYMMETRIC KEYTYPE, , USERXML SCHEMA COLLECTION
VWCK VIEW BÁRMILYEN COLUMN ENCRYPTION KEY DEFINÍCIÓ DATABASE
VWCM VIEW BÁRMILYEN COLUMN MASTER KEY DEFINÍCIÓ DATABASE
VWCT VIEW VÁLTOZÁSKÖVETÉS TABLE, SCHEMA
VWDS VIEW DATABASE ÁLLAM DATABASE

REVOKE és oszlop-kivétel jogosultságok

A legtöbb esetben a REVOKE parancs eltávolítja az GRANT or DENY bejegyzést sys.database_permissions-ből.

Azonban lehetséges GRANTDENY vagy jogosultságok egy objektumon, majd REVOKE az adott engedély egy oszlopon. Ez az oszlop-kivétel engedély úgy jelenik meg, mint REVOKE sys.database_permissions. Vegye figyelembe a következő példát:

GRANT SELECT ON Person.Person TO [Sales];

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

Ezek a jogosultságok sys.database_permissions-ben egyként GRANT (az asztalon) és egyként REVOKE (az oszlopon) jelennek meg.

Important

REVOKE eltér az -től DENY, mivel a Sales fő továbbra is hozzáférhet az oszlophoz más jogosultságokon keresztül. Ha megtagadtuk volna a jogosultságokat, ahelyett, hogy visszavonnánk őket, Sales nem tudnánk megtekinteni az oszlop tartalmát, mert DENY mindig felülmúlja GRANTa szabályokat.

Permissions

Minden felhasználó láthatja a saját engedélyeit. A többi felhasználó jogosultságainak megtekintéséhez szükség VIEW van a DEFINITION, ALTER ANY USERvagy bármilyen engedélyre egy felhasználóra. A felhasználó által definiált szerepek megtekintéséhez ALTER ANY ROLEvagy tagság (például public) szükséges.

A katalógusnézetekben a metaadatok láthatósága olyan biztonságos adatokra korlátozódik, amelyek egy felhasználó tulajdonában vannak, vagy amelyeken a felhasználó engedélyt kapott. További információ: Metaadatok láthatóságának konfigurációja.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

Az adatbázishoz VIEW SECURITY DEFINITION engedély szükséges.

Examples

A. Az adatbázisnevek összes engedélyének listázása

Az alábbi lekérdezés felsorolja azokat az engedélyeket, amelyek kifejezetten megadottak vagy megtagadva az adatbázis-tagok számára.

Important

A rögzített adatbázis-szerepkörök engedélyei nem jelennek meg sys.database_permissions. Ezért előfordulhat, hogy az adatbázisnevek további, itt nem felsorolt engedélyekkel rendelkeznek.

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. Sémaobjektumok engedélyeinek listázása az adatbázisban

Az alábbi lekérdezés sys.database_principals és sys.database_permissions csatlakozik sys.objects és sys.schemas az adott sémaobjektumoknak adott vagy elutasított engedélyek listázásához.

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 pe.class = 1;

C. Adott objektum engedélyeinek listázása

Az előző példában egyetlen adatbázis-objektumra vonatkozó engedélyeket kérdezhet le.

Vegyük például az alábbi részletes engedélyeket, amelyeket egy adatbázis-felhasználónak test a mintaadatbázis-AdventureWorksDW2025:

GRANT SELECT ON dbo.vAssocSeqOrders TO [test];

Keresse meg a dbo.vAssocSeqOrdershozzárendelt részletes engedélyeket:

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 pe.class = 1
    AND o.name = 'vAssocSeqOrders'
    AND s.name = 'dbo';

A kimenetet adja vissza:

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

Következő lépések