GRANT – octroi d'autorisations de base de données (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse

Permet d'accorder des autorisations sur une base de données dans SQL Server.

Topic link icon Conventions de la syntaxe Transact-SQL

  
GRANT <permission> [ ,...n ]    
    TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]  
    [ AS <database_principal> ]  
  
<permission>::=    
permission | ALL [ PRIVILEGES ]  
  
<database_principal> ::=   
    Database_user   
  | Database_role   
  | Application_role   
  | Database_user_mapped_to_Windows_User   
  | Database_user_mapped_to_Windows_Group   
  | Database_user_mapped_to_certificate   
  | Database_user_mapped_to_asymmetric_key   
  | Database_user_with_no_login    

autorisation
Spécifie une autorisation qui peut être accordée sur une base de données. Pour obtenir la liste des autorisations, consultez la section Notes plus loin dans cette rubrique.

ALL
Cette option n'entraîne pas l'octroi de toutes les autorisations possibles. L'utilisation de l'option ALL équivaut à accorder les autorisations suivantes : BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE et CREATE VIEW.

PRIVILEGES
Inclus pour la conformité aux normes ISO. Ne change pas le comportement de l'option ALL.

WITH GRANT OPTION
Indique que le principal a également la possibilité d'accorder l'autorisation spécifiée à d'autres principaux.

AS <principal_de_base_de_données>
Spécifie un principal dont le principal qui exécute cette requête dérive son droit d'accorder l'autorisation.

Database_user
Spécifie un utilisateur de base de données.

Database_role
Spécifie un rôle de base de données.

Application_role

S’applique à: SQL Server 2008 via SQL Server 2016, Base de données SQL.

Spécifie un rôle d'application.

Database_user_mapped_to_Windows_User

S'applique à: SQL Server 2008 et SQL Server 2016.

Spécifie un utilisateur de base de données mappé sur un utilisateur Windows.

Database_user_mapped_to_Windows_Group

S'applique à: SQL Server 2008 et SQL Server 2016.

Spécifie un utilisateur de base de données mappé à un groupe Windows.

Database_user_mapped_to_certificate

S'applique à: SQL Server 2008 et SQL Server 2016.

Spécifie un utilisateur de base de données mappé sur un certificat.

Database_user_mapped_to_asymmetric_key

S'applique à: SQL Server 2008 et SQL Server 2016.

Spécifie un utilisateur de base de données mappé à une clé asymétrique.

Database_user_with_no_login
Spécifie un utilisateur de base de données sans principal au niveau serveur correspondant.

System_CAPS_ICON_important.jpg Important


Dans certains cas, une combinaison d'autorisations ALTER et REFERENCE pourrait autoriser le bénéficiaire des autorisations à afficher des données ou à exécuter des fonctions non autorisées. Exemple : un utilisateur avec une autorisation ALTER sur une table et une autorisation REFERENCE sur une fonction peut créer une colonne calculée sur une fonction et l'exécuter. Dans ce cas, l'utilisateur doit également disposer d'une autorisation SELECT sur la colonne calculée.

Une base de données est un élément sécurisable contenu par le serveur qui est son parent dans la hiérarchie des autorisations. Les autorisations les plus spécifiques et limitées qu'il est possible d'accorder sur une base de données sont répertoriées dans le tableau ci-dessous, avec les autorisations plus générales qui les incluent de manière implicite.

Autorisation de base de donnéesImpliquée par une autorisation de base de donnéesDéduite d'une autorisation de serveur
ADMINISTER DATABASE BULK OPERATIONS
S’applique à : Base de données SQL.
CONTROLCONTROL SERVER
ALTERCONTROLALTER ANY DATABASE
ALTER ANY APPLICATION ROLEALTERCONTROL SERVER
ALTER ANY ASSEMBLYALTERCONTROL SERVER
ALTER ANY ASYMMETRIC KEYALTERCONTROL SERVER
ALTER ANY CERTIFICATEALTERCONTROL SERVER
ALTER ANY COLUMN ENCRYPTION KEYALTERCONTROL SERVER
MODIFIER UNE DÉFINITION DE CLÉ PRINCIPALE DE COLONNEALTERCONTROL SERVER
ALTER ANY CONTRACTALTERCONTROL SERVER
ALTER ANY DATABASE AUDITALTERALTER ANY SERVER AUDIT
ALTER ANY DATABASE DDL TRIGGERALTERCONTROL SERVER
ALTER ANY DATABASE EVENT NOTIFICATIONALTERALTER ANY EVENT NOTIFICATION
ALTER ANY DATABASE EVENT SESSION
S'applique à: Base de données SQL.
ALTERALTER ANY EVENT SESSION
ALTER ANY DATABASE SCOPED CONFIGURATION
 S’applique à: SQL Server 2016 via SQL Server 2016, Base de données SQL.
CONTROLCONTROL SERVER
ALTER ANY DATASPACEALTERCONTROL SERVER
ALTER ANY EXTERNAL DATA SOURCEALTERCONTROL SERVER
ALTER ANY EXTERNAL FILE FORMATALTERCONTROL SERVER
ALTER ANY FULLTEXT CATALOGALTERCONTROL SERVER
ALTER ANY MASKCONTROLCONTROL SERVER
ALTER ANY MESSAGE TYPEALTERCONTROL SERVER
ALTER ANY REMOTE SERVICE BINDINGALTERCONTROL SERVER
ALTER ANY ROLEALTERCONTROL SERVER
ALTER ANY ROUTEALTERCONTROL SERVER
ALTER ANY SCHEMAALTERCONTROL SERVER
MODIFIER UNE STRATÉGIE DE SÉCURITÉ
 S'applique à: Base de données Azure SQL.
CONTROLCONTROL SERVER
ALTER ANY SERVICEALTERCONTROL SERVER
ALTER ANY SYMMETRIC KEYALTERCONTROL SERVER
ALTER ANY USERALTERCONTROL SERVER
AUTHENTICATECONTROLAUTHENTICATE SERVER
BACKUP DATABASECONTROLCONTROL SERVER
BACKUP LOGCONTROLCONTROL SERVER
CHECKPOINTCONTROLCONTROL SERVER
CONNECTCONNECT REPLICATIONCONTROL SERVER
CONNECT REPLICATIONCONTROLCONTROL SERVER
CONTROLCONTROLCONTROL SERVER
CREATE AGGREGATEALTERCONTROL SERVER
CREATE ASSEMBLYALTER ANY ASSEMBLYCONTROL SERVER
CREATE ASYMMETRIC KEYALTER ANY ASYMMETRIC KEYCONTROL SERVER
CREATE CERTIFICATEALTER ANY CERTIFICATECONTROL SERVER
CREATE CONTRACTALTER ANY CONTRACTCONTROL SERVER
CREATE DATABASECONTROLCREATE ANY DATABASE
CREATE DATABASE DDL EVENT NOTIFICATIONALTER ANY DATABASE EVENT NOTIFICATIONCREATE DDL EVENT NOTIFICATION
CREATE DEFAULTALTERCONTROL SERVER
CREATE FULLTEXT CATALOGALTER ANY FULLTEXT CATALOGCONTROL SERVER
CREATE FUNCTIONALTERCONTROL SERVER
CREATE MESSAGE TYPEALTER ANY MESSAGE TYPECONTROL SERVER
CREATE PROCEDUREALTERCONTROL SERVER
CREATE QUEUEALTERCONTROL SERVER
CREATE REMOTE SERVICE BINDINGALTER ANY REMOTE SERVICE BINDINGCONTROL SERVER
CREATE ROLEALTER ANY ROLECONTROL SERVER
CREATE ROUTEALTER ANY ROUTECONTROL SERVER
CREATE RULEALTERCONTROL SERVER
CREATE SCHEMAALTER ANY SCHEMACONTROL SERVER
CREATE SERVICEALTER ANY SERVICECONTROL SERVER
CREATE SYMMETRIC KEYALTER ANY SYMMETRIC KEYCONTROL SERVER
CREATE SYNONYMALTERCONTROL SERVER
CREATE TABLEALTERCONTROL SERVER
CREATE TYPEALTERCONTROL SERVER
CREATE VIEWALTERCONTROL SERVER
CREATE XML SCHEMA COLLECTIONALTERCONTROL SERVER
DELETECONTROLCONTROL SERVER
EXECUTECONTROLCONTROL SERVER
INSERTCONTROLCONTROL SERVER
KILL DATABASE CONNECTION
S'applique à: Base de données Azure SQL.
CONTROLALTER ANY CONNECTION
REFERENCESCONTROLCONTROL SERVER
SELECTCONTROLCONTROL SERVER
SHOWPLANCONTROLALTER TRACE
SUBSCRIBE QUERY NOTIFICATIONSCONTROLCONTROL SERVER
TAKE OWNERSHIPCONTROLCONTROL SERVER
UNMASKCONTROLCONTROL SERVER
UPDATECONTROLCONTROL SERVER
VIEW ANY COLUMN ENCRYPTION KEY DEFINITIONCONTROLVIEW ANY DEFINITION
VIEW ANY COLUMN MASTER KEY DEFINITIONCONTROLVIEW ANY DEFINITION
VIEW DATABASE STATECONTROLVIEW SERVER STATE
VIEW DEFINITIONCONTROLVIEW ANY DEFINITION

Le fournisseur d'autorisations (ou le principal spécifié avec l'option AS) doit posséder l'autorisation elle-même avec l'option GRANT OPTION ou une autorisation plus élevée qui implique l'autorisation accordée.

Si vous utilisez l'option AS, les conditions supplémentaires ci-dessous s'appliquent.

En tant que granting_principalAutres autorisations nécessaires
Utilisateur de base de donnéesAutorisation IMPERSONATE sur l'utilisateur, appartenance au rôle de base de données fixe db_securityadmin, appartenance au rôle de base de données fixe db_owner ou appartenance au rôle serveur fixe sysadmin.
Utilisateur de base de données mappé à une connexion WindowsAutorisation IMPERSONATE sur l'utilisateur, appartenance au rôle de base de données fixe db_securityadmin, appartenance au rôle de base de données fixe db_owner ou appartenance au rôle serveur fixe sysadmin.
Utilisateur de base de données mappé à un groupe WindowsAppartenance au groupe Windows, appartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin.
Utilisateur de base de données mappé à un certificatAppartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin.
Utilisateur de base de données mappé à une clé asymétriqueAppartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin.
Utilisateur de base de données qui n'est mappé sur aucun principal d'un serveurAutorisation IMPERSONATE sur l'utilisateur, appartenance au rôle de base de données fixe db_securityadmin, appartenance au rôle de base de données fixe db_owner ou appartenance au rôle serveur fixe sysadmin.
Rôle de base de donnéesAutorisation ALTER sur le rôle, appartenance au rôle de base de données fixe db_securityadmin, appartenance au rôle de base de données fixe db_owner ou appartenance au rôle serveur fixe sysadmin.
Rôle d'applicationAutorisation ALTER sur le rôle, appartenance au rôle de base de données fixe db_securityadmin, appartenance au rôle de base de données fixe db_owner ou appartenance au rôle serveur fixe sysadmin.

Les propriétaires d'objets peuvent accorder des autorisations sur les objets qu'ils possèdent. Les principaux qui possèdent l'autorisation CONTROL sur un élément sécurisable peuvent accorder une autorisation sur cet élément sécurisable.

Les détenteurs de l'autorisation CONTROL SERVER, tels que les membres du rôle serveur fixe sysadmin, peuvent accorder une autorisation sur n'importe quel élément sécurisable du serveur.

A. Octroi d'une autorisation pour créer des tables

L’exemple suivant accorde CREATE TABLE autorisation sur le AdventureWorks base de données utilisateur MelanieK.

USE AdventureWorks;  
GRANT CREATE TABLE TO MelanieK;  
GO  

B. Octroi d'une autorisation SHOWPLAN à un rôle d'application

Dans l'exemple ci-dessous, l'autorisation SHOWPLAN sur la base de données AdventureWorks2012 est accordée au rôle d'application AuditMonitor.

S’applique à: SQL Server 2008 via SQL Server 2016, Base de données SQL.
USE AdventureWorks2012;  
GRANT SHOWPLAN TO AuditMonitor;  
GO  

C. Octroi d'une autorisation CREATE VIEW avec l'option GRANT OPTION

Dans l'exemple ci-dessous, l'autorisation CREATE VIEW sur la base de données AdventureWorks2012 est accordée à l'utilisateur CarmineEs avec le droit d'accorder CREATE VIEW à d'autres principaux.

USE AdventureWorks2012;  
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;  
GO  

Sys.database_permissions &#40 ; Transact-SQL &#41 ;
Sys.database_principals &#40 ; Transact-SQL &#41 ;
CRÉER une base de DONNÉES &#40 ; SQL Server Transact-SQL &#41 ;
GRANT &#40 ; Transact-SQL &#41 ;
Autorisations &#40 ; le moteur de base de données &#41 ;
Entités de &#40 ; le moteur de base de données &#41 ;

Ajouts de la communauté

Afficher: