Autorisations : GRANT, DENY et REVOKE (entrepôt de données SQL Azure, entrepôt de données en parallèle)Permissions: GRANT, DENY, REVOKE (Azure SQL Data Warehouse, Parallel Data Warehouse)

CETTE RUBRIQUE S’APPLIQUE À : nonSQL Server nonAzure SQL DatabaseouiAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server noAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Utilisez SQL Data WarehouseSQL Data Warehouse ou Parallel Data WarehouseParallel Data Warehouse GRANT et DENY instructions pour accorder ou refuser une autorisation (tels que mise à jour) sur un élément sécurisable (par exemple, une base de données, table, vue, etc.) à un principal de sécurité (un compte de connexion, un utilisateur de base de données ou un rôle de base de données).Use SQL Data WarehouseSQL Data Warehouse or Parallel Data WarehouseParallel Data WarehouseGRANT and DENY statements to grant or deny a permission (such as UPDATE) on a securable (such as a database, table, view, etc.) to a security principal (a login, a database user, or a database role). Utilisez RÉVOQUER pour supprimer l’octroi ou de refus d’une autorisation.Use REVOKE to remove the grant or deny of a permission.

Autorisations de niveau serveur sont appliquées aux connexions.Server level permissions are applied to logins. Les autorisations de niveau base de données sont appliquées à des utilisateurs de base de données et les rôles de base de données.Database level permissions are applied to database users and database roles.

Pour voir quelles autorisations ont été accordées et refusées, interrogez les vues sys.server_permissions et sys.database_permissions.To see what permissions have been granted and denied, query the sys.server_permissions and sys.database_permissions views. Les autorisations qui ne sont pas explicitement accordées ou refusées à un principal de sécurité peuvent être héritées par ayant une appartenance à un rôle qui dispose des autorisations.Permissions that are not explicitly granted or denied to a security principal can be inherited by having membership in a role that has permissions. Les autorisations des rôles de base de données fixe ne peut pas être modifiées et n’apparaissent pas dans les vues sys.server_permissions et sys.database_permissions.The permissions of the fixed database roles cannot be changed and do not appear in the sys.server_permissions and sys.database_permissions views.

SyntaxeSyntax

-- Azure SQL Data Warehouse and Parallel Data Warehouse  
GRANT   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
[;]  

DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  

REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  

<permission> ::=  
{ see the tables below }  

<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

ArgumentsArguments

<autorisation > [ ,... n ]<permission>[ ,...n ]
Une ou plusieurs autorisations à accorder, refuser ou révoquer.One or more permissions to grant, deny, or revoke.

ON [ <class_type > ::] sécurisable le ON clause décrit le paramètre d’élément sécurisable auquel accorder, refuser ou révoquer des autorisations.ON [ <class_type> :: ] securable The ON clause describes the securable parameter on which to grant, deny, or revoke permissions.

<class_type > le type de classe de l’élément sécurisable.<class_type> The class type of the securable. Cela peut être connexion, base de données, objet, schéma, rôle, ou utilisateur.This can be LOGIN, DATABASE, OBJECT, SCHEMA, ROLE, or USER. Les autorisations peuvent également être accordées à la SERVERclass_type, mais SERVER n’est pas spécifié pour ces autorisations.Permissions can also be granted to the SERVERclass_type, but SERVER is not specified for those permissions. Base de données n’est pas spécifié lorsque l’autorisation inclut le mot base de données (par exemple ALTER ANY DATABASE).DATABASE is not specified when the permission includes the word DATABASE (for example ALTER ANY DATABASE). Lorsqu’aucun class_type est spécifié et le type d’autorisation n’est pas limité sur le serveur ou de la classe de base de données, la classe est censée pour être objet.When no class_type is specified and the permission type is not restricted to the server or database class, the class is assumed to be OBJECT.

élément sécurisablesecurable
Le nom de la connexion, de base de données, table, vue, schéma, procédure, rôle ou utilisateur auquel accorder, refuser ou révoquer des autorisations.The name of the login, database, table, view, schema, procedure, role, or user on which to grant, deny, or revoke permissions. Le nom de l’objet peut être spécifié avec les règles d’affectation des noms en trois parties qui sont décrites dans Conventions de syntaxe Transact-SQL ( Transact-SQL ) .The object name can be specified with the three-part naming rules that are described in Transact-SQL Syntax Conventions (Transact-SQL).

POUR principal [ ,... n ]TO principal [ ,...n ]
Un ou plusieurs principaux accordées, refusées ou révoquées autorisations.One or more principals being granted, denied, or revoked permissions. Principal est le nom de connexion, l’utilisateur de base de données ou le rôle de base de données.Principal is the name of a login, database user, or database role.

À partir de principal [ ,... n ]FROM principal [ ,...n ]
Un ou plusieurs principaux pour révoquer des autorisations à partir de.One or more principals to revoke permissions from. Principal est le nom de connexion, l’utilisateur de base de données ou le rôle de base de données.Principal is the name of a login, database user, or database role. À partir de peut uniquement être utilisé avec un RÉVOQUER instruction.FROM can only be used with a REVOKE statement. POUR peut être utilisé avec GRANT, DENY, ou RÉVOQUER.TO can be used with GRANT, DENY, or REVOKE.

WITH GRANT OPTIONWITH GRANT OPTION
Indique que le détenteur de l'autorisation a également la possibilité d'accorder l'autorisation spécifiée à d'autres principaux.Indicates that the grantee will also be given the ability to grant the specified permission to other principals.

CASCADECASCADE
Indique que l’autorisation est refusée ou révoquée pour le principal spécifié et à tous les autres principaux auxquels le principal de l’autorisation.Indicates that the permission is denied or revoked to the specified principal and to all other principals to which the principal granted the permission. Obligatoire lorsque le principal dispose de l’autorisation avec l’option GRANT OPTION.Required when the principal has the permission with GRANT OPTION.

GRANT OPTION FORGRANT OPTION FOR
Indique que la possibilité d'accorder l'autorisation spécifiée sera révoquée.Indicates that the ability to grant the specified permission will be revoked. Cela est nécessaire lorsque vous utilisez la CASCADE argument.This is required when you are using the CASCADE argument.

Important

Si le principal possède l’autorisation spécifiée sans la GRANT option, l’autorisation elle-même sera révoquée.If the principal has the specified permission without the GRANT option, the permission itself will be revoked.

PermissionsPermissions

Pour accorder une autorisation, le fournisseur d’autorisations doit avoir l’autorisation elle-même avec le WITH GRANT OPTION, ou doit avoir une autorisation plus élevée qui implique l’autorisation accordée.To grant a permission, the grantor must have either the permission itself with the WITH GRANT OPTION, or must have a higher permission that implies the permission being granted. Les propriétaires d'objets peuvent accorder des autorisations sur les objets qu'ils possèdent.Object owners can grant permissions on the objects they own. Les principaux avec contrôle autorisation sur un élément sécurisable permettre accorder une autorisation sur cet élément sécurisable.Principals with CONTROL permission on a securable can grant permission on that securable. Membres de la db_owner et db_securityadmin des rôles de base de données fixe peuvent accorder une autorisation dans la base de données.Members of the db_owner and db_securityadmin fixed database roles can grant any permission in the database.

Remarques d'ordre généralGeneral Remarks

Ou le refus ou révocation d’autorisations à un principal n’affecte pas les demandes qui ont réussi d’autorisation et qui sont en cours d’exécution.Denying or revoking permissions to a principal will not affect requests that have passed authorization and are currently running. Pour restreindre l’accès immédiatement, vous devez annuler les demandes actives ou arrêter des sessions en cours.To restrict access immediately, you must cancel active requests or kill current sessions.

Note

La plupart des rôles de serveur ne sont pas disponibles dans cette version.Most fixed server roles are not available in this release. Utilisez à la place des rôles de base de données défini par l’utilisateur.Use user-defined database roles instead. Les connexions ne peuvent pas être ajoutées à la sysadmin rôle serveur fixe.Logins cannot be added to the sysadmin fixed server role. Octroi le CONTROL SERVER autorisation est une approximation de l’appartenance à la sysadmin rôle serveur fixe.Granting the CONTROL SERVER permission approximates membership in the sysadmin fixed server role.

Certaines instructions requièrent plusieurs autorisations.Some statements require multiple permissions. Par exemple, pour créer une table requiert le CREATE TABLE autorisations dans la base de données et le ALTER SCHEMA autorisation pour la table qui contiendra la table.For example, to create a table requires the CREATE TABLE permissions in the database, and the ALTER SCHEMA permission for the table that will contain the table.

PDW exécute parfois des procédures stockées pour distribuer les actions utilisateur pour les nœuds de calcul.PDW sometimes executes stored procedures to distribute user actions to the compute nodes. Par conséquent, l’autorisation execute pour une base de données entière ne peut pas être refusée.Therefore, the execute permission for an entire database cannot be denied. (Par exemple DENY EXECUTE ON DATABASE::<name> TO <user>; échouera.) Pour contourner ce problème, refuser l’autorisation execute pour les schémas d’utilisateur ou des objets spécifiques (procédures).(For example DENY EXECUTE ON DATABASE::<name> TO <user>; will fail.) As a work around, deny the execute permission to user-schemas or specific objects (procedures).

Autorisations implicites et explicitesImplicit and Explicit Permissions

Un autorisation explicite est un GRANT ou DENY autorisation donnée à un principal par un GRANT ou DENY instruction.An explicit permission is a GRANT or DENY permission given to a principal by a GRANT or DENY statement.

Un autorisation implicite est un GRANT ou DENY autorisation une entité de sécurité (connexion, utilisateur ou rôle de base de données) a hérité d’un autre rôle de base de données.An implicit permission is a GRANT or DENY permission that a principal (login, user, or database role) has inherited from another database role.

Autorisation implicite peut également être héritée à partir d’une couverture ou l’autorisation parente.An implicit permission can also be inherited from a covering or parent permission. Par exemple, mise à jour autorisation sur une table peut être héritée par ayant mise à jour autorisation sur le schéma qui contient la table, ou contrôle autorisation sur la table.For example, UPDATE permission on a table can be inherited by having UPDATE permission on the schema that contains the table, or CONTROL permission on the table.

Chaînage des propriétésOwnership Chaining

Lorsque plusieurs objets de base de données uns aux autres de manière séquentielle, la séquence est connue comme une chaîne.When multiple database objects access each other sequentially, the sequence is known as a chain. Bien que de telles chaînes n'existent pas indépendamment les unes des autres, lorsque SQL ServerSQL Server parcourt les liens d'une chaîne, SQL ServerSQL Server évalue les autorisations sur les objets constitutifs différemment de ce qu'il ferait s'il accédait aux objets séparément.Although such chains do not independently exist, when SQL ServerSQL Server traverses the links in a chain, SQL ServerSQL Server evaluates permissions on the constituent objects differently than it would if it were accessing the objects separately. Le chaînage des propriétés a des implications importantes pour la gestion de la sécurité.Ownership chaining has important implications for managing security. Pour plus d’informations sur les chaînes de propriétés, consultez chaînes et didacticiel : chaînes de propriétés et changement de contexte.For more information about ownership chains, see Ownership Chains and Tutorial: Ownership Chains and Context Switching.

Liste des autorisationsPermission List

Autorisations de niveau serveurServer Level Permissions

Autorisations de niveau serveur peuvent être accordées, refusées et révoquées de connexions.Server level permissions can be granted, denied, and revoked from logins.

Autorisations qui s’appliquent aux serveursPermissions that apply to servers

  • CONTROL SERVERCONTROL SERVER

  • ADMINISTER BULK OPERATIONSADMINISTER BULK OPERATIONS

  • ALTER ANY CONNECTIONALTER ANY CONNECTION

  • ALTER ANY DATABASEALTER ANY DATABASE

  • CREATE ANY DATABASECREATE ANY DATABASE

  • ALTER ANY EXTERNAL DATA SOURCEALTER ANY EXTERNAL DATA SOURCE

  • ALTER ANY EXTERNAL FILE FORMATALTER ANY EXTERNAL FILE FORMAT

  • ALTER ANY LOGINALTER ANY LOGIN

  • ALTER SERVER STATEALTER SERVER STATE

  • CONNECT SQLCONNECT SQL

  • VIEW ANY DEFINITIONVIEW ANY DEFINITION

  • VIEW ANY DATABASEVIEW ANY DATABASE

  • VIEW SERVER STATEVIEW SERVER STATE

    Autorisations qui s’appliquent aux connexionsPermissions that apply to logins

  • SUR LA CONNEXION DE CONTRÔLECONTROL ON LOGIN

  • ALTER SUR LA CONNEXIONALTER ON LOGIN

  • EMPRUNTER L’IDENTITÉ DE LA CONNEXIONIMPERSONATE ON LOGIN

  • VIEW DEFINITIONVIEW DEFINITION

Autorisations de niveau base de donnéesDatabase Level Permissions

Les autorisations de niveau base de données peuvent être accordées, refusées et révoqués à partir des utilisateurs de base de données et les rôles de base de données défini par l’utilisateur.Database level permissions can be granted, denied, and revoked from database users and user-defined database roles.

Autorisations qui s’appliquent à toutes les classes de base de donnéesPermissions that apply to all database classes

  • CONTROLCONTROL

  • ALTERALTER

  • VIEW DEFINITIONVIEW DEFINITION

    Autorisations qui s’appliquent à toutes les classes de base de données à l’exception des utilisateursPermissions that apply to all database classes except users

  • TAKE OWNERSHIPTAKE OWNERSHIP

    Autorisations qui s’appliquent uniquement aux bases de donnéesPermissions that apply only to databases

  • ALTER ANY DATABASEALTER ANY DATABASE

  • ALTER SUR LA BASE DE DONNÉESALTER ON DATABASE

  • ALTER ANY DATASPACEALTER ANY DATASPACE

  • ALTER ANY ROLEALTER ANY ROLE

  • ALTER ANY SCHEMAALTER ANY SCHEMA

  • ALTER ANY USERALTER ANY USER

  • BACKUP DATABASEBACKUP DATABASE

  • SE CONNECTER SUR LA BASE DE DONNÉESCONNECT ON DATABASE

  • CREATE PROCEDURECREATE PROCEDURE

  • CREATE ROLECREATE ROLE

  • CREATE SCHEMACREATE SCHEMA

  • CREATE TABLECREATE TABLE

  • CREATE VIEWCREATE VIEW

  • SHOWPLANSHOWPLAN

    Autorisations qui s’appliquent uniquement aux utilisateursPermissions that apply only to users

  • IMPERSONATEIMPERSONATE

    Autorisations qui s’appliquent aux bases de données, des schémas et des objetsPermissions that apply to databases, schemas, and objects

  • ALTERALTER

  • DELETEDELETE

  • EXECUTEEXECUTE

  • INSERTINSERT

  • SELECTSELECT

  • UPDATEUPDATE

  • REFRENCESREFRENCES

    Pour une définition de chaque type d’autorisation, consultez autorisations (moteur de base de données).For a definition of each type of permission, see Permissions (Database Engine).

Graphique des autorisationsChart of Permissions

Toutes les autorisations sont représentées graphiquement dans ce poster.All permissions are graphically represented on this poster. Il s’agit de la façon la plus simple pour afficher une hiérarchie imbriquée d’autorisations.This is the easiest way to see nested hierarchy of permissions. Par exemple le ALTER ON LOGIN autorisation peut être accordée par lui-même, mais il est également inclus si une connexion est accordée le contrôle autorisation sur cette connexion, ou si une connexion est accordée le ALTER ANY LOGIN autorisation.For example the ALTER ON LOGIN permission can be granted by itself, but it is also included if a login is granted the CONTROL permission on that login, or if a login is granted the ALTER ANY LOGIN permission.

Poster des autorisations sécurité APSAPS security permissions poster

Pour télécharger une version de la taille totale de cette affiche, consultez autorisations de SQL Server PDWdans la section des fichiers du site Yammer de points d’accès (ou une demande par courrier électronique à partir de apsdoc@microsoft.com .To download a full size version of this poster, see SQL Server PDW Permissionsin the files section of the APS Yammer site (or request by e-mail from apsdoc@microsoft.com.

Autorisations par défautDefault Permissions

La liste suivante décrit les autorisations par défaut :The following list describes the default permissions:

  • Lorsqu’une connexion est créée à l’aide de la CREATE LOGIN instruction la nouvelle connexion reçoit le CONNECT SQL autorisation.When a login is created by using the CREATE LOGIN statement the new login receives the CONNECT SQL permission.

  • Toutes les connexions sont membres de la public rôle de serveur et ne peut pas être supprimé public.All logins are members of the public server role and cannot be removed from public.

  • Lorsqu’un utilisateur de base de données est créé à l’aide de la CREATE USER autorisation, l’utilisateur de base de données reçoit le CONNECT autorisation dans la base de données.When a database user is created by using the CREATE USER permission, the database user receives the CONNECT permission in the database.

  • Tous les principaux, y compris le public rôle bénéficient pas d’autorisations explicites ou implicites par défaut.All principals, including the public role, have no explicit or implicit permissions by default.

  • Lorsqu’une connexion ou un utilisateur devient le propriétaire d’un objet ou une base de données, la connexion ou l’utilisateur a toujours toutes les autorisations sur la base de données ou l’objet.When a login or user becomes the owner of a database or object, the login or user always has all permissions on the database or object. Les autorisations de la propriété ne peut pas être modifiées et ne sont pas visibles en tant qu’autorisations explicites.The ownership permissions cannot be changed and are not visible as explicit permissions. Le GRANT, DENY, et RÉVOQUER instructions n’ont aucun effet sur les propriétaires.The GRANT, DENY, and REVOKE statements have no effect on owners.

  • Le sa connexion dispose de toutes les autorisations sur l’appareil.The sa login has all permissions on the appliance. Similaires aux autorisations de la propriété, le sa autorisations ne peut pas être modifiées et ne sont pas visibles en tant qu’autorisations explicites.Similar to ownership permissions, the sa permissions cannot be changed and are not visible as explicit permissions. Le GRANT, DENY, et RÉVOQUER instructions n’ont aucun effet sa connexion.The GRANT, DENY, and REVOKE statements have no effect on sa login. Le sa connexion ne peut pas être renommée.The sa login cannot be renamed.

  • Le utilisez instruction ne requiert pas d’autorisations.The USE statement does not require permissions. Tous les principaux peuvent exécuter la utilisez instruction sur une base de données.All principals can run the USE statement on any database.

Exemples : SQL Data WarehouseSQL Data Warehouse et Parallel Data WarehouseParallel Data Warehouse Examples: SQL Data WarehouseSQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

A.A. Octroi d’une autorisation de niveau serveur à une connexionGranting a server level permission to a login

Les deux instructions suivantes accorder une autorisation de niveau serveur à une connexion.The following two statements grant a server level permission to a login.

GRANT CONTROL SERVER TO [Ted];  
GRANT ALTER ANY DATABASE TO Mary;  

B.B. Octroi d’une autorisation de niveau serveur à une connexionGranting a server level permission to a login

L’exemple suivant accorde une autorisation au niveau du serveur sur une connexion à un serveur principal (connexion à un autre).The following example grants a server level permission on a login to a server principal (another login).

GRANT  VIEW DEFINITION ON LOGIN::Ted TO Mary;  

C.C. Octroi d’une autorisation de niveau de base de données à un utilisateurGranting a database level permission to a user

L’exemple suivant accorde une autorisation au niveau de la base de données sur un utilisateur à une base de données principal (un autre utilisateur).The following example grants a database level permission on a user to a database principal (another user).

GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;  

D.D. Octroi, de refus et de révocation d’une autorisation de schémaGranting, denying, and revoking a schema permission

Les éléments suivants GRANT instruction accorde Yuen la possibilité de sélectionner des données dans une table ou une vue dans le schéma dbo.The following GRANT statement grants Yuen the ability to select data from any table or view in the dbo schema.

GRANT SELECT ON SCHEMA::dbo TO [Yuen];  

Les éléments suivants DENY instruction empêche Yuen à partir de la sélection de données dans une table ou une vue dans le schéma dbo.The following DENY statement prevents Yuen from selecting data from any table or view in the dbo schema. Yuen ne peut pas lire les données même s’il a l’autorisation d’une autre manière, par exemple via une appartenance au rôle.Yuen cannot read the data even if he has permission in some other way, such as through a role membership.

DENY SELECT ON SCHEMA::dbo TO [Yuen];  

Les éléments suivants RÉVOQUER instruction supprime le DENY autorisation.The following REVOKE statement removes the DENY permission. Désormais, les autorisations explicites de Yuen sont neutres.Now Yuen's explicit permissions are neutral. Yuen peut être en mesure de sélectionner des données à partir de n’importe quelle table par le biais des autres autorisations implicites telles que l’appartenance d’un rôle.Yuen might be able to select data from any table through some other implicit permission such as a role membership.

REVOKE SELECT ON SCHEMA::dbo TO [Yuen];  

E.E. Démonstration de l’objet facultatif :: clauseDemonstrating the optional OBJECT:: clause

Étant donné que l’objet est la classe par défaut pour une instruction d’autorisation, les deux instructions suivantes sont identiques.Because OBJECT is the default class for a permission statement, the following two statements are the same. Le objet :: clause est facultative.The OBJECT:: clause is optional.

GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];  
GRANT UPDATE ON dbo.StatusTable TO [Ted];