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

Permet d'accorder des autorisations sur un serveur.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

  • permission
    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.

Notes

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

Les informations sur les autorisations de serveur peuvent être consultées dans l'affichage catalogue sys.server_permissions, tandis que les informations sur les principaux de serveur peuvent être consultées dans l'affichage catalogue sys.server_principals. Des informations sur l'appartenance des rôles de serveur peuvent être consultées dans l'affichage catalogue sys.server_role_members.

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 serveur

Déduite d'une autorisation de serveur

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY AVAILABILITY GROUP

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY EVENT SESSION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER ANY SERVER ROLE

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

ALTER ANY AVAILABILITY GROUP

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE SERVER ROLE

ALTER ANY SERVER ROLE

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

Autorisations

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.

Exemples

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

Voir aussi

Référence

GRANT (Transact-SQL)

DENY (Transact-SQL)

DENY – refus d'autorisations de serveur (Transact-SQL)

REVOKE – révocation d'autorisations de serveur (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

Concepts

Hiérarchie des autorisations (moteur de base de données)

Principaux (moteur de base de données)

Autorisations (moteur de base de données)