GRANT – octroi d'autorisations de base de données (Transact-SQL)
Permet d'accorder des autorisations sur une base de données.
Syntaxe
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
Arguments
permission
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 l'entité de sécurité sera également en mesure d'accorder l'autorisation spécifiée à d'autres entités de sécurité.AS <entité_de_sécurité_de_base_de_données>
Spécifie une entité de sécurité à partir de laquelle l'entité de sécurité 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
Spécifie un rôle d'application.Database_user_mapped_to_Windows_User
Spécifie un utilisateur de base de données mappé sur un utilisateur Windows.Database_user_mapped_to_Windows_Group
Spécifie un utilisateur de base de données mappé sur un groupe Windows.Database_user_mapped_to_certificate
Spécifie un utilisateur de base de données mappé sur un certificat.Database_user_mapped_to_asymmetric_key
Spécifie un utilisateur de base de données mappé sur une clé asymétrique.Database_user_with_no_login
Spécifie un utilisateur de base de données sans entité de sécurité au niveau serveur correspondant.
Notes
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. Par exemple, un utilisateur disposant d'une autorisation ALTER sur une table et d'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ées |
Déduite d'une autorisation de base de données |
Déduite d'une autorisation de serveur |
---|---|---|
ALTER |
CONTROL |
ALTER ANY DATABASE |
ALTER ANY APPLICATION ROLE |
ALTER |
CONTROL SERVER |
ALTER ANY ASSEMBLY |
ALTER |
CONTROL SERVER |
ALTER ANY ASYMMETRIC KEY |
ALTER |
CONTROL SERVER |
ALTER ANY CERTIFICATE |
ALTER |
CONTROL SERVER |
ALTER ANY CONTRACT |
ALTER |
CONTROL SERVER |
ALTER ANY DATABASE AUDIT |
ALTER |
ALTER ANY SERVER AUDIT |
ALTER ANY DATABASE DDL TRIGGER |
ALTER |
CONTROL SERVER |
ALTER ANY DATABASE EVENT NOTIFICATION |
ALTER |
ALTER ANY EVENT NOTIFICATION |
ALTER ANY DATASPACE |
ALTER |
CONTROL SERVER |
ALTER ANY FULLTEXT CATALOG |
ALTER |
CONTROL SERVER |
ALTER ANY MESSAGE TYPE |
ALTER |
CONTROL SERVER |
ALTER ANY REMOTE SERVICE BINDING |
ALTER |
CONTROL SERVER |
ALTER ANY ROLE |
ALTER |
CONTROL SERVER |
ALTER ANY ROUTE |
ALTER |
CONTROL SERVER |
ALTER ANY SCHEMA |
ALTER |
CONTROL SERVER |
ALTER ANY SERVICE |
ALTER |
CONTROL SERVER |
ALTER ANY SYMMETRIC KEY |
ALTER |
CONTROL SERVER |
ALTER ANY USER |
ALTER |
CONTROL SERVER |
AUTHENTICATE |
CONTROL |
AUTHENTICATE SERVER |
BACKUP DATABASE |
CONTROL |
CONTROL SERVER |
BACKUP LOG |
CONTROL |
CONTROL SERVER |
CHECKPOINT |
CONTROL |
CONTROL SERVER |
CONNECT |
CONNECT REPLICATION |
CONTROL SERVER |
CONNECT REPLICATION |
CONTROL |
CONTROL SERVER |
CONTROL |
CONTROL |
CONTROL SERVER |
CREATE AGGREGATE |
ALTER |
CONTROL SERVER |
CREATE ASSEMBLY |
ALTER ANY ASSEMBLY |
CONTROL SERVER |
CREATE ASYMMETRIC KEY |
ALTER ANY ASYMMETRIC KEY |
CONTROL SERVER |
CREATE CERTIFICATE |
ALTER ANY CERTIFICATE |
CONTROL SERVER |
CREATE CONTRACT |
ALTER ANY CONTRACT |
CONTROL SERVER |
CREATE DATABASE |
CONTROL |
CREATE ANY DATABASE |
CREATE DATABASE DDL EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT NOTIFICATION |
CREATE DDL EVENT NOTIFICATION |
CREATE DEFAULT |
ALTER |
CONTROL SERVER |
CREATE FULLTEXT CATALOG |
ALTER ANY FULLTEXT CATALOG |
CONTROL SERVER |
CREATE FUNCTION |
ALTER |
CONTROL SERVER |
CREATE MESSAGE TYPE |
ALTER ANY MESSAGE TYPE |
CONTROL SERVER |
CREATE PROCEDURE |
ALTER |
CONTROL SERVER |
CREATE QUEUE |
ALTER |
CONTROL SERVER |
CREATE REMOTE SERVICE BINDING |
ALTER ANY REMOTE SERVICE BINDING |
CONTROL SERVER |
CREATE ROLE |
ALTER ANY ROLE |
CONTROL SERVER |
CREATE ROUTE |
ALTER ANY ROUTE |
CONTROL SERVER |
CREATE RULE |
ALTER |
CONTROL SERVER |
CREATE SCHEMA |
ALTER ANY SCHEMA |
CONTROL SERVER |
CREATE SERVICE |
ALTER ANY SERVICE |
CONTROL SERVER |
CREATE SYMMETRIC KEY |
ALTER ANY SYMMETRIC KEY |
CONTROL SERVER |
CREATE SYNONYM |
ALTER |
CONTROL SERVER |
CREATE TABLE |
ALTER |
CONTROL SERVER |
CREATE TYPE |
ALTER |
CONTROL SERVER |
CREATE VIEW |
ALTER |
CONTROL SERVER |
CREATE XML SCHEMA COLLECTION |
ALTER |
CONTROL SERVER |
DELETE |
CONTROL |
CONTROL SERVER |
EXECUTE |
CONTROL |
CONTROL SERVER |
INSERT |
CONTROL |
CONTROL SERVER |
REFERENCES |
CONTROL |
CONTROL SERVER |
SELECT |
CONTROL |
CONTROL SERVER |
SHOWPLAN |
CONTROL |
ALTER TRACE |
SUBSCRIBE QUERY NOTIFICATIONS |
CONTROL |
CONTROL SERVER |
TAKE OWNERSHIP |
CONTROL |
CONTROL SERVER |
UPDATE |
CONTROL |
CONTROL SERVER |
VIEW DATABASE STATE |
CONTROL |
VIEW SERVER STATE |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
Autorisations
Le fournisseur d'autorisations (ou l'entité de sécurité spécifiée 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 à accorder.
Si vous utilisez l'option AS, les conditions supplémentaires ci-dessous s'appliquent.
AS granting_principal |
Autorisation supplémentaire requise |
---|---|
Utilisateur de base de données |
Autorisation IMPERSONATE sur l'utilisateur, 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é sur une connexion Windows |
Autorisation 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é sur un groupe Windows |
Appartenance au groupe Windows, 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é sur un certificat |
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é sur une clé asymétrique |
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 qui n'est mappé sur aucune entité de sécurité d'un serveur |
Autorisation IMPERSONATE sur l'utilisateur, appartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin. |
Rôle de base de données |
Autorisation ALTER sur le rôle, appartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin. |
Rôle d'application |
Autorisation ALTER sur le rôle, appartenance aux rôles de base de données fixe db_securityadmin ou db_owner ou appartenance au rôle serveur fixe sysadmin. |
Les propriétaires d'objet peuvent accorder des autorisations sur les objets qu'ils possèdent. Les entités de sécurité qui possèdent l'autorisation CONTROL sur un sécurisable peuvent accorder une autorisation sur ce sécurisable.
Les bénéficiaires de l'autorisation CONTROL SERVER, tels que les membres du rôle serveur fixe sysadmin, peuvent accorder une autorisation quelconque sur tout sécurisable placé sur le serveur.
Exemples
A. Octroi d'une autorisation pour créer des tables
Dans l'exemple ci-dessous, l'autorisation CREATE TABLE sur la base de données AdventureWorks est accordée à l'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 AdventureWorks est accordée au rôle d'application AuditMonitor.
USE AdventureWorks;
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 AdventureWorks est accordée à l'utilisateur CarmineEs avec le droit d'accorder CREATE VIEW à d'autres entités de sécurité.
USE AdventureWorks;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
Historique des modifications
Updated content |
---|
Added the ALTER ANY DATABASE AUDIT permission. |