GRANT (Transact-SQL)

Accorde des autorisations à une entité de sécurité sur un élément sécurisable.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ WITH GRANT OPTION ] [ AS principal ]

Arguments

  • ALL
    Cette option est abandonnée mais maintenue uniquement pour la compatibilité descendante. Elle n'accorde pas toutes les autorisations possibles. Elle revient à accorder les autorisations suivantes.

    • Si l'élément sécurisable est une base de données, ALL représente BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE et CREATE VIEW.

    • Si l'élément sécurisable est une fonction scalaire, ALL représente EXECUTE et REFERENCES.

    • Si l'élément sécurisable est une fonction table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

    • Si l'élément sécurisable est une procédure stockée, ALL représente EXECUTE.

    • Si l'élément sécurisable est une table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

    • Si l'élément sécurisable est une vue, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

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

  • permission
    Nom d'une autorisation. Les mappages valides des autorisations des éléments sécurisables sont décrits dans les sous-rubriques qui suivent.

  • column
    Spécifie le nom de la colonne d'une table à laquelle les autorisations s'appliquent. Les parenthèses ( ) sont obligatoires.

  • class
    Indique la classe de l'élément sécurisable sur laquelle l'autorisation est accordée. Le qualificateur d'étendue :: est requis.

  • securable
    Indique l'élément sécurisable sur lequel l'autorisation est accordée.

  • TO principal
    Nom d'une entité de sécurité. Les entités de sécurité auxquelles il est possible d'accorder des autorisations sur un élément sécurisable varient en fonction de l'élément sécurisable. Voir les sous-rubriques ci-dessous pour connaître les combinaisons acceptées.

  • GRANT OPTION
    Indique que le détenteur de l'autorisation a également la possibilité d'accorder l'autorisation spécifiée à d'autres entités de sécurité.

  • AS principal
    Spécifie une entité de sécurité dont l'entité de sécurité qui exécute cette requête dérive son droit d'accorder l'autorisation.

Notes

La syntaxe complète de l'instruction GRANT est complexe. Le diagramme de syntaxe ci-dessus a été simplifié de façon à attirer l'attention sur sa structure. La syntaxe complète d'accord des autorisations sur des éléments sécurisables particuliers est décrite dans les rubriques ci-dessous.

L'instruction REVOKE peut s'utiliser pour supprimer des autorisations accordées et l'instruction DENY pour empêcher une entité de sécurité d'obtenir une autorisation particulière au moyen d'une instruction GRANT.

L'accord d'une autorisation supprime l'option DENY ou REVOKE de cette autorisation sur l'élément sécurisable spécifié. Si la même autorisation est refusée dans une étendue plus élevée qui contient l'élément sécurisable, l'option DENY est prioritaire. Cependant, la révocation de l'autorisation accordée dans une étendue plus élevée n'est pas prioritaire.

Les autorisations au niveau base de données sont accordées sur l'étendue de la base de données spécifiée. Si un utilisateur a besoin d'autorisations sur des objets dans une autre base de données, créez le compte de l'utilisateur dans cette autre base de données ou autorisez le compte de l'utilisateur à accéder à la fois à cette autre base de données et à la base de données active.

AttentionAttention

Une instruction DENY de niveau table n'a pas la priorité sur une instruction GRANT de niveau colonne. Cette incohérence de la hiérarchie des autorisations est conservée pour des raisons de compatibilité descendante. Elle sera supprimée dans une version ultérieure.

La procédure système stockée sp_helprotect répertorie les autorisations sur un élément sécurisable au niveau base de données.

Autorisations

Le fournisseur de l'autorisation (ou l'entité de sécurité spécifiée avec l'option AS) doit lui-même posséder l'autorisation avec GRANT OPTION ou une autorisation plus élevée qui implique l'autorisation accordée. En cas d'utilisation de l'option AS, d'autres critères s'appliquent. Pour plus d'informations, consultez la rubrique sur les éléments sécurisables.

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

Les détenteurs de l'autorisation CONTROL SERVER, tels que les membres du rôle de serveur fixe sysadmin, peuvent accorder une autorisation sur n'importe quel élément sécurisable du serveur. Les détenteurs de l'autorisation CONTROL sur une base de données, tels que les membres du rôle de base de données fixe db_owner, peuvent accorder une autorisation sur n'importe quel élément sécurisable de la base de données. Les détenteurs de l'autorisation CONTROL sur un schéma peuvent accorder une autorisation sur n'importe quel objet dans ce schéma.

Exemples

Pour connaître la syntaxe des éléments sécurisables, consultez les rubriques suivantes.

Rôle d'application

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

Assembly

GRANT - Autorisations sur un assembly (Transact-SQL)

Clé asymétrique

GRANT - Autorisations de clé asymétrique (Transact-SQL)

Certificat

Autorisations de certificat GRANT (Transact-SQL)

Contrat

GRANT - Autorisations sur Service Broker (Transact-SQL)

Base de données

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

Point de terminaison

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

Catalogue de texte intégral

GRANT - Autorisations relatives au texte intégral (Transact-SQL)

Liste de mots vides de texte intégral

GRANT - Autorisations relatives au texte intégral (Transact-SQL)

Fonction

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Connexion

GRANT – octroi d'autorisations d'entité de sécurité de serveur (Transact-SQL)

Type de message

GRANT - Autorisations sur Service Broker (Transact-SQL)

Objet

GRANT – octroi d'autorisations d'objet (Transact-SQL)

File d'attente

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Liaisons de service distant

GRANT - Autorisations sur Service Broker (Transact-SQL)

Rôle

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

Itinéraire

GRANT - Autorisations sur Service Broker (Transact-SQL)

Schéma

GRANT - Autorisations sur un schéma (Transact-SQL)

Serveur

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

Service

GRANT - Autorisations sur Service Broker (Transact-SQL)

Procédure stockée

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Clé symétrique

GRANT – octroi d'autorisations de clé symétrique (Transact-SQL)

Synonyme

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Objets système

GRANT – octroi d'autorisations d'objet système (Transact-SQL)

Table

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Type

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

Utilisateur

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

Vue

GRANT – octroi d'autorisations d'objet (Transact-SQL)

Collection de schémas XML

GRANT – octroi d'autorisations de collection de schémas XML (Transact-SQL)