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

 

THIS TOPIC APPLIES TO: noSQL Server noAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Utilisez SQL Data Warehouse ou Parallel Data Warehouse GRANT et DENY instructions pour accorder ou refuser une autorisation (tel que mise à jour) sur un élément sécurisable (par exemple, une base de données, table, vue, etc.) à une entité de sécurité (un compte de connexion, un utilisateur de base de données ou un rôle de base de données). Utilisez RÉVOQUER pour supprimer l’octroi ou de refus d’une autorisation.

Autorisations de niveau serveur sont appliquées aux connexions. Autorisations de niveau base de données sont appliquées pour les utilisateurs et les rôles de base de données.

Pour voir quelles autorisations ont été accordées et refusées, interrogez les vues sys.server_permissions et sys.database_permissions. Les autorisations qui ne sont pas explicitement accordées ou refusées à un principal de sécurité peuvent être héritées en ayant l’appartenance à un rôle qui dispose d’autorisations. 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.

  • GRANT accorde explicitement une ou plusieurs autorisations.

  • DENY refuse explicitement l’entité de sécurité d’avoir une ou plusieurs autorisations.

  • RÉVOQUER supprime existant GRANT ou DENY autorisations.

Topic link iconConventions de syntaxe transact-SQL (Transact-SQL)

-- 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  
}  

<>>[ ,... n ]
Une ou plusieurs autorisations à accorder, refuser ou révoquer.

ON [ <class_type> :: ] securable</class_type>
Le ON clause décrit le paramètre sécurisable auquel accorder, refuser ou révoquer des autorisations.

<type_classe>
Le type de classe de l’élément sécurisable. This can be LOGIN, DATABASE, OBJECT, SCHEMA, ROLE, or USER. Autorisations peuvent également être accordées à la SERVERclass_type, mais SERVER n’est spécifiée pour ces autorisations. Base de données n’est pas spécifié lorsque l’autorisation inclut le mot base de données (par exemple 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 supposée pour être objet.

élément sécurisable
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. Le nom d’objet peut être spécifié avec les règles d’affectation de noms de trois parties qui sont décrites dans Conventions de syntaxe Transact-SQL (Transact-SQL).

TO principal [ ,... n ]
Un ou plusieurs principaux accordées, refusées ou révoquées autorisations. Principal est le nom d’une connexion, utilisateur de base de données ou rôle de base de données.

FROM principal [ ,... n ]
Un ou plusieurs principaux pour révoquer des autorisations à partir de. Principal est le nom d’une connexion, utilisateur de base de données ou rôle de base de données. À partir de peut uniquement être utilisé avec un RÉVOQUER instruction. POUR peut être utilisé avec GRANT, DENY, ou RÉVOQUER.

WITH GRANT OPTION
Indique que le détenteur de l'autorisation a également la possibilité d'accorder l'autorisation spécifiée à d'autres principaux.

CASCADE
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. Obligatoire lorsque le principal possède l’autorisation avec GRANT OPTION.

GRANT OPTION FOR
Indique que la possibilité d'accorder l'autorisation spécifiée sera révoquée. Cela est nécessaire lorsque vous utilisez la CASCADE argument.

System_CAPS_ICON_important.jpg Important


Si le principal possède l’autorisation spécifiée sans la GRANT option, l’autorisation elle-même sera révoquée.

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. Les propriétaires d'objets peuvent accorder des autorisations sur les objets qu'ils possèdent. Les principaux avec contrôle autorisation sur un élément sécurisable permettre accorder une autorisation sur cet élément sécurisable. Membres de la db_owner et db_securityadmin des rôles de base de données fixes peuvent accorder une autorisation dans la base de données.

Refus ou révocation d’autorisations à un principal n’affecte pas les demandes qui ont l’autorisation et en cours d’exécution. Pour restreindre l’accès immédiatement, vous devez annuler les demandes actives ou arrêter les sessions en cours.

System_CAPS_ICON_note.jpg Remarque


La plupart des rôles de serveur ne sont pas disponibles dans cette version. Utilisez à la place des rôles de base de données défini par l’utilisateur. Connexions d’accès ne peut pas être ajoutées à la sysadmin rôle serveur fixe. Octroi le CONTROL SERVER autorisation est une approximation de l’appartenance à la sysadmin rôle serveur fixe.

Certaines instructions requièrent plusieurs autorisations. Par exemple, pour créer une table nécessite la CREATE TABLE autorisations dans la base de données et la ALTER SCHEMA autorisation pour la table qui contiendra la table.

PDW exécute parfois des procédures stockées pour distribuer les actions utilisateur pour les nœuds de calcul. Par conséquent, l’autorisation execute pour une base de données entière ne peut pas être refusée. (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).

Autorisations implicites et explicites

Un autorisation explicite est un GRANT ou DENY autorisation donnée à une entité de sécurité par un GRANT ou DENY instruction.

Un autorisation implicite est un GRANT ou DENY autorisation qu’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.

Autorisation implicite peut également être héritée d’une couverture ou autorisation parente. Par exemple, mise à jour peut hériter d’une autorisation sur une table en avoir mise à jour autorisation sur le schéma qui contient la table, ou contrôle autorisation sur la table.

Chaînage des propriétés

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. Bien que de telles chaînes n'existent pas indépendamment les unes des autres, lorsque SQL Server parcourt les liens d'une chaîne, SQL Server évalue les autorisations sur les objets constitutifs différemment de ce qu'il ferait s'il accédait aux objets séparément. Le chaînage des propriétés a des implications importantes pour la gestion de la sécurité. Pour plus d’informations sur les chaînes de propriété, consultez chaînes et didacticiel : chaînes de propriétés et changement de contexte.

Autorisations de niveau serveur

Autorisations de niveau serveur peuvent être accordées, refusées et révoquées sur les connexions.

Autorisations qui s’appliquent aux serveurs

  • CONTROL SERVER

  • ADMINISTER BULK OPERATIONS

  • ALTER ANY CONNECTION

  • ALTER ANY DATABASE

  • CREATE ANY DATABASE

  • ALTER ANY EXTERNAL DATA SOURCE

  • ALTER ANY EXTERNAL FILE FORMAT

  • ALTER ANY LOGIN

  • ALTER SERVER STATE

  • CONNECT SQL

  • VIEW ANY DEFINITION

  • VIEW ANY DATABASE

  • VIEW SERVER STATE

Autorisations qui s’appliquent aux connexions

  • CONTRÔLE DE CONNEXION

  • ALTER SUR LA CONNEXION

  • EMPRUNTER L’IDENTITÉ DE CONNEXION

  • VIEW DEFINITION

Autorisations de niveau base de données

Autorisations de niveau base de données peuvent être accordées, refusé et révoqués des utilisateurs et les rôles de base de données défini par l’utilisateur.

Autorisations qui s’appliquent à toutes les classes de base de données

  • CONTROL

  • ALTER

  • VIEW DEFINITION

Autorisations qui s’appliquent à toutes les classes de base de données à l’exception des utilisateurs

  • TAKE OWNERSHIP

Autorisations qui s’appliquent uniquement aux bases de données

  • ALTER ANY DATABASE

  • ALTER SUR LA BASE DE DONNÉES

  • ALTER ANY DATASPACE

  • ALTER ANY ROLE

  • ALTER ANY SCHEMA

  • ALTER ANY USER

  • BACKUP DATABASE

  • SE CONNECTER À LA BASE DE DONNÉES

  • CREATE PROCEDURE

  • CREATE ROLE

  • CREATE SCHEMA

  • CREATE TABLE

  • CREATE VIEW

  • SHOWPLAN

Autorisations qui s’appliquent uniquement aux utilisateurs

  • IMPERSONATE

Autorisations qui s’appliquent aux bases de données, des schémas et des objets

  • ALTER

  • DELETE

  • EXECUTE

  • INSERT

  • SELECT

  • UPDATE

  • REFRENCES

Pour une définition de chaque type d’autorisation, consultez autorisations (moteur de base de données).

Graphique des autorisations

Toutes les autorisations sont représentées graphiquement dans ce poster. Il s’agit du moyen le plus simple pour afficher une hiérarchie imbriquée d’autorisations. Par exemple le ALTER ON LOGIN peut être accordé 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.

APS security permissions poster

Pour télécharger une version de la taille totale de ce poster, consultez autorisations SQL Server PDWdans la section fichiers du site Yammer APS (ou une demande par courrier électronique à partir de ** apsdoc@microsoft.com **.

La liste suivante décrit les autorisations par défaut :

  • Lorsqu’une connexion est créée à l’aide de la CREATE LOGIN instruction la nouvelle connexion reçoit la CONNECT SQL autorisation.

  • Toutes les connexions sont membres de la public rôle de serveur et ne peut pas être supprimé de 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 connecter autorisation dans la base de données.

  • Toutes les entités, y compris la public rôle, n’ont aucune autorisation explicite ou implicite par défaut.

  • 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. Les autorisations de propriétaire ne peut pas être modifiées et ne sont pas visibles en tant qu’autorisations explicites. Le GRANT, DENY, et RÉVOQUER instructions n’ont aucun effet sur les propriétaires.

  • Le sa connexion possède toutes les autorisations sur le matériel. Similaires aux autorisations du propriétaire, le sa autorisations ne peuvent pas être modifiées et ne sont pas visibles en tant qu’autorisations explicites. Le GRANT, DENY, et RÉVOQUER instructions n’ont aucun effet sa connexion. Le sa connexion ne peut pas être renommée.

  • Le utilisez instruction ne nécessite pas d’autorisations. Toutes les entités peuvent exécuter la utilisez instruction sur une base de données.

A. Octroi d’une autorisation de niveau serveur à une connexion

Les deux instructions suivantes accorder une autorisation de niveau serveur à une connexion.

GRANT CONTROL SERVER TO [Ted];  

GRANT ALTER ANY DATABASE TO Mary;  

B. Octroi d’une autorisation de niveau serveur à une connexion

L’exemple suivant accorde une autorisation au niveau du serveur sur une connexion à un serveur principal (une autre connexion).

GRANT  VIEW DEFINITION ON LOGIN::Ted TO Mary;  

C. Octroi d’une autorisation de niveau de base de données à un utilisateur

L’exemple suivant accorde une autorisation de niveau base de données sur un utilisateur à une base de données principal (un autre utilisateur).

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

D. Octroi, refus et révocation d’une autorisation de schéma

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.

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

Les éléments suivants DENY instruction empêche Yuen de sélection des données dans une table ou une vue dans le schéma dbo. 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.

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

Les éléments suivants RÉVOQUER instruction supprime le DENY autorisation. Autorisations explicites de Yuen voilà neutres. Yuen peut être en mesure de sélectionner des données à partir de n’importe quelle table via des autres autorisations implicites telles que l’appartenance d’un rôle.

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

E. Démonstration de l’objet facultatif :: clause

Étant donné que l’objet est la classe par défaut pour une instruction d’autorisation, les deux instructions suivantes sont identiques. Le objet :: clause est facultative.

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

GRANT UPDATE ON dbo.StatusTable TO [Ted];  

Ajouts de la communauté

AJOUTER
Afficher: