Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL 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 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 EXTERNAL LANGUAGE |
| 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 permission. |
| state | char(1) | Déclaration de permission : 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 | MODIFIER TOUT DATABASEEVENT SESSION | DATABASE |
| AAMK | MODIFIER TOUT MASQUE | DATABASE |
| AEDS | MODIFIER TOUT EXTERNAL DATA SOURCE | DATABASE |
| AEFF | MODIFIER TOUT EXTERNAL FILE FORMAT | DATABASE |
| AL | ALTER | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEYCERTIFICATE, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, , OBJECT, , USERROLESYMMETRIC KEYROUTESCHEMASERVICEREMOTE SERVICE BINDINGXML SCHEMA COLLECTION |
| ALAK | MODIFIER TOUT ASYMMETRIC KEY | DATABASE |
| ALAR | MODIFIER TOUT APPLICATION ROLE | DATABASE |
| ALAS | MODIFIER TOUT ASSEMBLY | DATABASE |
| ALCF | MODIFIER TOUT CERTIFICATE | DATABASE |
| ALDS | MODIFIER TOUT ESPACE DE DONNÉES | DATABASE |
| ALED | MODIFIER TOUT DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | MODIFIER TOUT FULLTEXT CATALOG | DATABASE |
| ALMT | MODIFIER TOUT MESSAGE TYPE | DATABASE |
| ALRL | MODIFIER TOUT ROLE | DATABASE |
| ALRT | MODIFIER TOUT ROUTE | DATABASE |
| ALSB | MODIFIER TOUT REMOTE SERVICE BINDING | DATABASE |
| ALSC | MODIFIER TOUT CONTRACT | DATABASE |
| ALSK | MODIFIER TOUT SYMMETRIC KEY | DATABASE |
| ALSM | MODIFIER TOUT SCHEMA | DATABASE |
| ALSV | MODIFIER TOUT SERVICE | DATABASE |
| ALTG | MODIFIER N’IMPORTE QUEL DATABASE DDL TRIGGER | DATABASE |
| ALUS | MODIFIER TOUT USER | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE | DATABASE |
| BALO | BACKUP JOURNAL | DATABASE |
| CL | CONTROL | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJET, , ROUTEUSERROLETYPESCHEMASYMMETRIC KEYSERVICEREMOTE SERVICE BINDINGCERTIFICATEXML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | RÉPLICATION DE CONNEXION | 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 | ADMINISTRATION DATABASE DES OPÉRATIONS EN VRAC | DATABASE |
| DL | DELETE | DATABASE, OBJECTE, SCHEMA |
| EAES | EXÉCUTER UN SCRIPT EXTERNE | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OBJECTE, SCHEMA, TYPE, XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OBJECTE, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, , , , , , , OBJET, SCHEMA, TYPESYMMETRIC KEY, , MESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| SL | SELECT | DATABASE, OBJECTE, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | NOTIFICATIONS DE REQUÊTE D’ABONNEMENT | DATABASE |
| TO | PRENDRE POSSESSION | ASSEMBLY, , , , , , , , OBJECT, REMOTE SERVICE BINDING, SYMMETRIC KEYTYPEROLESCHEMASERVICEROUTEMESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE, OBJECTE, SCHEMA |
| VW | VIEW DÉFINITION | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJET, , ROUTEUSERROLETYPESCHEMASYMMETRIC KEYSERVICEREMOTE SERVICE BINDINGCERTIFICATEXML SCHEMA COLLECTION |
| VWCK | VIEW TOUTE COLUMN ENCRYPTION KEY DÉFINITION | DATABASE |
| VWCM | VIEW TOUTE COLUMN MASTER KEY DÉFINITION | DATABASE |
| VWCT | VIEW SUIVI DES CHANGEMENTS | TABLE, SCHEMA |
| VWDS | VIEW DATABASE ÉTAT | DATABASE |
REVOKE et les autorisations d’exception de colonne
Dans la plupart des cas, la REVOKE commande supprime l’entrée GRANT ou DENY de sys.database_permissions.
Cependant, il est possible GRANT de ou DENY des permissions sur un objet puis REVOKE cette permission sur une colonne. Cette permission d’exception de colonne apparaîtra comme REVOKE dans sys.database_permissions. Prenons l’exemple suivant :
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Ces permissions apparaîtront en sys.database_permissions comme une GRANT (sur la table) et une REVOKE (sur la colonne).
Important
REVOKE est différent de DENY, car le Sales principal peut toujours avoir accès à la colonne via d’autres permissions. Si nous avions refusé les permissions au lieu de les révoquer, Sales nous ne pourrions pas consulter le contenu de la colonne car DENY cela GRANTremplace toujours .
Permissions
Tout utilisateur peut consulter ses propres autorisations. Pour voir les permissions d’autres utilisateurs, il faut VIEW une DÉFINITION, MODIFIER N’IMPORTE USERQUEL , ou toute permission sur un utilisateur. Pour voir les rôles définis par l’utilisateur, il faut MODIFIER N’importe ROLEquel rôle, ou l’appartenance au rôle (comme 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.
Examples
A. 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.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
WHERE pe.class = 1;
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éesAdventureWorksDW2025:
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 pe.class = 1
AND 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
- Securables
- Hiérarchie des autorisations (moteur de base de données)
- Affichages catalogue liées à la sécurité (Transact-SQL)
- Affichages catalogue (Transact-SQL)