Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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
Accorde des autorisations à un principal sur un élément sécurisable. Le concept général est de GRANT <some permission> ON <some object> TO <some user, login, or group>. Pour obtenir une présentation générale des autorisations, consultez Autorisations (Moteur de base de données).
Conventions de la syntaxe Transact-SQL
Syntax
Syntaxe pour SQL Server, Azure SQL Database et la base de données SQL Fabric.
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ , ...n ] ) ] [ , ...n ]
[ ON [ class :: ] securable ] TO principal [ , ...n ]
[ WITH GRANT OPTION ] [ AS principal ]
Syntaxe pour Azure Synapse Analytics, Parallel Data Warehouse et l’entrepôt Microsoft Fabric.
GRANT
<permission> [ , ...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ , ...n ]
[ WITH GRANT OPTION ]
[;]
<permission> ::=
{ see the tables below }
<class_type> ::=
{
LOGIN
| DATABASE
| OBJECT
| ROLE
| SCHEMA
| USER
}
Arguments
ALL
Cette option est déconseillée mais maintenue uniquement pour la compatibilité descendante. Il n’accorde pas toutes les autorisations possibles. L’octroi ALL équivaut à accorder les autorisations suivantes.
| Securable | Permissions |
|---|---|
| Database |
BACKUP DATABASE, , BACKUP LOG, CREATE DATABASECREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, etCREATE VIEW |
| Fonction scalaire |
EXECUTE et REFERENCES |
| Fonction à valeurs de table |
DELETE, INSERT, REFERENCES, SELECT et UPDATE |
| Procédure stockée | EXECUTE |
| Table |
DELETE, INSERT, REFERENCES, SELECT et UPDATE |
| View |
DELETE, INSERT, REFERENCES, SELECT et UPDATE |
PRIVILEGES
Inclus pour la conformité aux normes ISO. Ne modifie pas le comportement de ALL.
permission
Nom d’une autorisation. Les mappages valides des autorisations aux éléments sécurisables sont décrits dans les sections suivantes.
column
Spécifie le nom de la colonne d'une table à laquelle les autorisations s'appliquent. Les parenthèses et ( sont requises).
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.
AU principal
Nom d’un principal. Les principaux auxquels il est possible d'accorder des autorisations sur un élément sécurisable varient en fonction de l'élément sécurisable. Consultez les sections suivantes pour connaître les combinaisons valides.
OPTION DE SUBVENTION
Indique que le détenteur de l'autorisation a également la possibilité d'accorder l'autorisation spécifiée à d'autres principaux.
Principal AS
Utilisez la AS <principal> clause pour indiquer que le principal enregistré en tant que bénéficiaire de l’autorisation doit être un principal autre que la personne exécutant l’instruction. Par exemple, présumez que l’utilisateur Mary a un principal_id12 de , et l’utilisateur Raul est principal 15. Mary exécute GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Maintenant la sys.database_permissions table indique que l’instruction grantor_principal_id a été 15 (Raul) même si l’instruction a été exécutée par l’utilisateur 12 (Mary).
L’utilisation de la AS clause n’est généralement pas recommandée, sauf si vous devez définir explicitement la chaîne d’autorisations. Pour plus d’informations, consultez Résumé de l’algorithme de vérification des autorisations.
L’utilisation de AS cette instruction n’implique pas la possibilité d’emprunter l’identité d’un autre utilisateur.
Remarks
La syntaxe complète de l’instruction GRANT est complexe. Le diagramme de syntaxe précédent a été simplifié pour attirer l’attention sur sa structure. La syntaxe complète pour accorder des autorisations sur des éléments sécurisables spécifiques est décrite dans les articles répertoriés plus loin dans cet article.
L’instruction REVOKE peut être utilisée pour supprimer des autorisations accordées, et l’instruction DENY peut être utilisée pour empêcher un principal d’obtenir une autorisation spécifique via un GRANT.
L’octroi d’une autorisation supprime DENY ou REVOKE de cette autorisation sur l’élément sécurisable spécifié. Si la même autorisation est refusée à une étendue supérieure qui contient l’élément sécurisable, elle DENY est prioritaire. Mais la révocation de l’autorisation accordée à 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.
Caution
Un niveau DENY table n’est pas prioritaire sur un niveau GRANTde colonne. Cette incohérence dans la hiérarchie des autorisations a été conservée pour des raisons de compatibilité descendante. Elle sera supprimée dans une version ultérieure.
La sp_helprotect procédure stockée système signale des autorisations sur un élément sécurisable au niveau de la base de données.
Dans Microsoft Fabric, CREATE USER ne peut pas être exécuté explicitement actuellement. Quand GRANT ou DENY est exécuté, l’utilisateur est créé automatiquement.
AVEC L’OPTION GRANT
Spécifie GRANT ... WITH GRANT OPTION que le principal de sécurité recevant l’autorisation est autorisé à accorder l’autorisation spécifiée à d’autres comptes de sécurité. Lorsque le principal qui reçoit l’autorisation est un rôle ou un groupe Windows, la AS clause doit être utilisée lorsque l’autorisation d’objet doit être accordée aux utilisateurs qui ne sont pas membres du groupe ou du rôle. Étant donné que seul un utilisateur, plutôt qu’un groupe ou un rôle, peut exécuter une GRANT instruction, un membre spécifique du groupe ou du rôle doit utiliser la AS clause pour appeler explicitement l’appartenance au rôle ou au groupe lors de l’octroi de l’autorisation. L’exemple suivant montre comment l’utilisation WITH GRANT OPTION est utilisée lorsqu’elle est accordée à un rôle ou à un groupe Windows.
-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;
-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;
-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;
Graphique des autorisations SQL Server
Pour obtenir un graphique de taille d’affiche de toutes les autorisations Moteur de base de données au format PDF, consultez https://aka.ms/sql-permissions-poster.
Permissions
Le fournisseur d’autorisations (ou le principal spécifié avec l’option AS) doit disposer soit de l’autorisation elle-même avec GRANT OPTION, soit d’une autorisation plus élevée qui implique l’autorisation en cours d’octroi. Si vous utilisez l’option, des exigences supplémentaires s’appliquent AS . Pour plus d’informations, consultez l’article sur les éléments sécurisables.
Les propriétaires d'objets peuvent accorder des autorisations sur les objets qu'ils possèdent. Les principaux disposant CONTROL d’une autorisation sur un élément sécurisable peuvent accorder l’autorisation sur cet élément sécurisable.
Les bénéficiaires d’autorisations CONTROL SERVER , tels que les membres du rôle serveur fixe sysadmin , peuvent accorder n’importe quelle autorisation sur n’importe quel élément sécurisable sur le serveur. Les bénéficiaires d’autorisations sur une base de CONTROL données, tels que les membres du rôle de base de données fixe db_owner , peuvent accorder n’importe quelle autorisation sur n’importe quelle sécurisable dans la base de données. Les bénéficiaires d’autorisations CONTROL sur un schéma peuvent accorder n’importe quelle autorisation sur n’importe quel objet du schéma.
Examples
Le tableau suivant répertorie les éléments sécurisables et les articles qui décrivent leur syntaxe.