GRANT – octroi d'autorisations de serveur (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse

Permet d'accorder des autorisations sur un serveur.

Topic link icon Conventions de la syntaxe Transact-SQL

  
GRANT permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]  
    [ AS <grantor_principal> ]  
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

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

TO <principal_bénéficiaire>
Spécifie le principal auquel l'autorisation est accordée.

AS <principal_de_fournisseur_d'autorisation>
Spécifie le principal à partir duquel le principal qui exécute cette requête dérive son droit d'accorder l'autorisation.

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

SQL_Server_login
Spécifie une connexion SQL Server.

SQL_Server_login_mapped_to_Windows_login
Spécifie une connexion SQL Server mappée sur une connexion Windows.

SQL_Server_login_mapped_to_Windows_group
Spécifie une connexion SQL Server mappée sur un groupe Windows.

SQL_Server_login_mapped_to_certificate
Spécifie un compte de connexion SQL Server mappé à un certificat.

SQL_Server_login_mapped_to_asymmetric_key
Spécifie un compte de connexion SQL Server mappé à une clé asymétrique.

server_role
Spécifie un rôle de serveur défini par l'utilisateur.

Les autorisations dans l'étendue du serveur peuvent être accordées seulement lorsque la base de données en cours est master.

Informations sur les autorisations de serveur peuvent être consultées dans le sys.server_permissions affichage catalogue et des informations sur les principaux de serveur peuvent être affichés dans le sys.server_principals affichage catalogue. Informations sur l’appartenance des rôles de serveur peuvent être consultées dans le sys.server_role_members affichage catalogue.

Un serveur représente le plus haut niveau de la hiérarchie des autorisations. Les autorisations les plus spécifiques et limitées qu'il est possible d'accorder sur un serveur sont répertoriées dans le tableau ci-dessous.

Autorisation de serveurDéduite d'une autorisation de serveur
ADMINISTER BULK OPERATIONSCONTROL SERVER
ALTER ANY AVAILABILITY GROUP

 S’applique à: SQL Server (SQL Server 2012 jusqu’à version actuelle).
CONTROL SERVER
ALTER ANY CONNECTIONCONTROL SERVER
ALTER ANY CREDENTIALCONTROL SERVER
ALTER ANY DATABASECONTROL SERVER
ALTER ANY ENDPOINTCONTROL SERVER
ALTER ANY EVENT NOTIFICATIONCONTROL SERVER
ALTER ANY EVENT SESSIONCONTROL SERVER
ALTER ANY LINKED SERVERCONTROL SERVER
ALTER ANY LOGINCONTROL SERVER
ALTER ANY SERVER AUDITCONTROL SERVER
ALTER ANY SERVER ROLE

 S’applique à: SQL Server (SQL Server 2012 jusqu’à version actuelle).
CONTROL SERVER
ALTER RESOURCESCONTROL SERVER
ALTER SERVER STATECONTROL SERVER
ALTER SETTINGSCONTROL SERVER
ALTER TRACECONTROL SERVER
AUTHENTICATE SERVERCONTROL SERVER
CONNECT ANY DATABASE

 S’applique à: SQL Server (SQL Server 2014 jusqu’à version actuelle).
CONTROL SERVER
CONNECT SQLCONTROL SERVER
CONTROL SERVERCONTROL SERVER
CREATE ANY DATABASEALTER ANY DATABASE
Créer un groupe de disponibilité

 S’applique à: SQL Server (SQL Server 2012 jusqu’à version actuelle).
ALTER ANY AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATIONALTER ANY EVENT NOTIFICATION
CREATE ENDPOINTALTER ANY ENDPOINT
CREATE SERVER ROLE

 S’applique à: SQL Server (SQL Server 2012 jusqu’à version actuelle).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATIONALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLYCONTROL SERVER
IMPERSONATE ANY LOGIN

 S’applique à: SQL Server (SQL Server 2014 jusqu’à version actuelle).
CONTROL SERVER
SELECT ALL USER SECURABLES

 S’applique à: SQL Server (SQL Server 2014 jusqu’à version actuelle).
CONTROL SERVER
SHUTDOWNCONTROL SERVER
UNSAFE ASSEMBLYCONTROL SERVER
VIEW ANY DATABASEVIEW ANY DEFINITION
VIEW ANY DEFINITIONCONTROL SERVER
VIEW SERVER STATEALTER SERVER STATE

Les trois autorisations de serveur suivantes ont été ajoutées dans SQL Server 2014.

Se connecter à une base de données autorisation
Accordez l'autorisation CONNECT ANY DATABASE à une connexion qui doit se connecter à toutes les bases de données existantes et à celles qui pourront être créées. N'accorde pas d'autorisation dans une base de données au-delà de la connexion. Associez cette autouisation à SELECT ALL USER SECURABLES ou VIEW SERVER STATE to allow an auditing process to view all data ou all database states on the instance of SQL Server.

Emprunter l’identité de n’importe quelle connexion autorisation
Lorsque cette autorisation est accordée, elle permet à un processus de niveau intermédiaire d'emprunter l'identité du compte des clients qui se connectent, à mesure qu'il se connecte aux bases de données. Si cette autorisation est refusée, une connexion dotée de privilèges élevés peut être bloquée à partir de l'emprunt d'identité d'autres connexions. Par exemple, une connexion dotée de l'autorisation CONTROL SERVER peut être bloquée à partir de l'emprunt d'identité d'autres connexions.

Sélectionnez tous les éléments SÉCURISABLES utilisateur autorisation
Lorsque cette autorisation est accordée, une connexion telle qu'un auditeur peut afficher les données de toutes les bases de données auxquelles l'utilisateur se connecte. Lorsque refusé, empêche l’accès aux objets, sauf si elles se trouvent dans le sys schéma.

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. Les membres du rôle serveur fixe sysadmin peuvent accorder toutes les autorisations.

A. Octroi d'une autorisation à une connexion

Dans l'exemple ci-dessous, l'autorisation CONTROL SERVER est accordée à la connexion SQL Server TerryEminhizer.

USE master;  
GRANT CONTROL SERVER TO TerryEminhizer;  
GO  

B. Octroi d'une autorisation qui possède l'autorisation GRANT

Dans l'exemple suivant, l'autorisation ALTER ANY EVENT NOTIFICATION est accordée à la connexion SQL Server JanethEsteves avec le droit d'accorder cette autorisation à une autre connexion.

USE master;  
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;  
GO  

C. Octroi d'une autorisation à un rôle de serveur

L'exemple suivant crée deux rôles de serveur nommés ITDevAdmin et ITDevelopers. Il accorde l'autorisation ALTER ANY DATABASE au rôle de serveur défini par l'utilisateur ITDevAdmin, notamment l'option WITH GRANT afin que le rôle de serveur ITDevAdmin puisse réaffecter l'autorisation ALTER ANY DATABASE L'exemple accorde ensuite à ITDevelopers l'autorisation d'utiliser l'autorisation ALTER ANY DATABASE du rôle de serveur ITDevAdmin.

USE master;  
CREATE SERVER ROLE ITDevAdmin ;  
CREATE SERVER ROLE ITDevelopers ;  
GRANT ALTER ANY DATABASE TO ITDevAdmin WITH GRANT OPTION ;  
GRANT ALTER ANY DATABASE TO ITDevelopers AS ITDevAdmin ;  
GO  

GRANT (Transact-SQL)
DENY (Transact-SQL)
REFUSER des autorisations de serveur (Transact-SQL)
RÉVOQUER des autorisations de serveur (Transact-SQL)
Hiérarchie des autorisations (Moteur de base de données)
Principaux (moteur de base de données)
Autorisations (moteur de base de données)
Sys.fn_builtin_permissions (Transact-SQL)
Sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)

Ajouts de la communauté

AJOUTER
Afficher: