sys.database_permissions (Transact-SQL)
S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse dans Microsoft Fabric
Renvoie une ligne pour chaque autorisation ou chaque autorisation avec exception sur colonne dans la base de données. Pour les colonnes, il existe une ligne pour chaque autorisation différente de l'autorisation correspondante au niveau objet. Si l’autorisation sur la colonne est identique à l’autorisation correspondante au niveau objet, aucune ligne n’existe et l’autorisation utilisée est celle de l’objet.
Important
Les autorisations au niveau colonne remplacent les autorisations au niveau objet sur la même entité.
Nom de la colonne | Type de données | Description |
---|---|---|
class | tinyint | Identifie la classe sur laquelle l'autorisation existe. Pour plus d’informations, consultez sys.securable_classes (Transact-SQL). 0 = Base de données 1 = Objet ou colonne 3 = Schéma 4 = Principal de la base de données 5 = Assembly - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 6 = Type 10 = Collection de schémas XML - S’applique à : SQL Server 2008 (10.0.x) et ultérieur. 15 = Type de message : SQL Server 2008 (10.0.x) et versions ultérieures. 16 = Contrat de service - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 17 = Service - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 18 = Liaison de service distant - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 19 = Route - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 23 =Catalogue de texte intégral - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 24 = Clé symétrique : SQL Server 2008 (10.0.x) et versions ultérieures. 25 = Certificat - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 26 = Clé asymétrique - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 29 = Liste de mots vides en texte intégral - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 31 = Search Property List - S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures. 32 = Informations d’identification délimitées à la base de données : SQL Server 2016 (13.x) et versions ultérieures. 34 = Langage externe - S’applique à : SQL Server 2019 (15.x) et versions ultérieures. |
class_desc | nvarchar(60) | Description de la classe sur laquelle l'autorisation existe. 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 LANGAGE EXTERNE |
major_id | int | ID de l'objet sur lequel l'autorisation existe, interprété en fonction de la classe. En règle générale, le major_id simple type d’ID qui s’applique à ce que représente la classe. 0 = La base de données elle-même >0 = ID d’objet pour les objets utilisateur <0 = Object-ID pour les objets système |
minor_id | int | ID secondaire de l'objet sur lequel l'autorisation existe, interprété en fonction de la classe. Souvent, la minor_id valeur est zéro, car il n’y a pas de sous-catégorie disponible pour la classe d’objet. Sinon, il s’agit de l’ID de colonne d’une table. |
grantee_principal_id | int | ID du principal de la base de données à laquelle les autorisations sont accordées. |
grantor_principal_id | int | ID du principal de la base de données du fournisseur de ces autorisations. |
type | char(4) | Type d'autorisation de la base de données. Pour obtenir la liste des types d'autorisations, consultez le tableau ci-dessous. |
permission_name | nvarchar(128) | Nom de l’autorisation. |
state | char(1) | État de l'autorisation : D = Refusée R = Révoquée G = Accordée W = Accordée avec option Grant |
state_desc | nvarchar(60) | Description de l'état de l'autorisation : DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Autorisations de base de données
Les types d’autorisations suivants sont possibles.
Type d'autorisation | Nom de l'autorisation | S'applique à l'élément sécurisable |
---|---|---|
AADS | ALTER ANY DATABASE EVENT SESSION | DATABASE |
AAMK | ALTER ANY MASK | DATABASE |
AEDS | ALTER ANY EXTERNAL DATA SOURCE | DATABASE |
AEFF | ALTER ANY EXTERNAL FILE FORMAT | DATABASE |
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 | S’applique à : SQL Server 2012 (11.x) et versions ultérieures. CREATE SEQUENCE |
DATABASE |
CRSV | CREATE SERVICE | DATABASE |
CRTB | CREATE TABLE | DATABASE |
CRTY | CREATE TYPE | DATABASE |
CRVW | CREATE VIEW | DATABASE |
CRXS | S’applique à : SQL Server 2008 (10.0.x) et ultérieur. CREATE XML SCHEMA COLLECTION |
DATABASE |
DABO | ADMINISTER DATABASE BULK OPERATIONS | DATABASE |
DL | Suppression | DATABASE, OBJECT, SCHEMA |
EAES | EXECUTE ANY EXTERNAL SCRIPT | DATABASE |
EX | Exécutez | ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION |
IM | IMPERSONATE | Utilisateur |
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 |
VWCK | VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | DATABASE |
VWCM | VIEW ANY COLUMN MASTER KEY DEFINITION | DATABASE |
VWCT | VIEW CHANGE TRACKING | TABLE, SCHEMA |
VWDS | VIEW DATABASE STATE | DATABASE |
Autorisations
Tout utilisateur peut consulter ses propres autorisations. Pour afficher les autorisations d'autres utilisateurs, vous devez disposer de l'autorisation VIEW DEFINITION, ALTER ANY USER, ou de n'importe quelle autorisation sur un utilisateur. Pour afficher les rôles définis par l'utilisateur, vous devez disposer de l'autorisation ALTER ANY ROLE, ou appartenir au rôle (notamment public).
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
R. Répertorier toutes les autorisations des principaux de base de données
La requête suivante énumère les autorisations accordées ou refusées explicitement aux principaux de base de données.
Important
Les autorisations de rôles de base de données fixes n’apparaissent pas dans sys.database_permissions
. Par conséquent, les principaux de base de données peuvent avoir des autorisations supplémentaires non répertoriées ici.
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. Répertorier les autorisations sur les objets de schéma dans une base de données
La requête suivante joint sys.database_principals et aux sys.objects et sys.schemas pour répertorier les autorisations accordées ou refusées à des objets de schéma spécifiques.sys.database_permissions
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. Répertorier les autorisations pour un objet spécifique
Vous pouvez utiliser l’exemple précédent pour interroger des autorisations spécifiques à un objet de base de données unique.
Par exemple, considérez les autorisations granulaires suivantes accordées à un utilisateur test
de base de données dans l’exemple de base de données AdventureWorksDW2022
:
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Recherchez les autorisations granulaires affectées à 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';
Retourne la sortie :
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Voir aussi
- Éléments sécurisables
- Hiérarchie des autorisations (moteur de base de données)
- Affichages catalogue liées à la sécurité (Transact-SQL)
- Affichages catalogue (Transact-SQL)