Privilèges de contrôle d’accès

Ce chapitre décrit les privilèges disponibles dans le modèle de contrôle d’accès Snowflake. Les privilèges sont accordés aux rôles, et les rôles sont accordés aux utilisateurs pour spécifier les opérations que les utilisateurs peuvent effectuer sur les objets du système.

Dans ce chapitre :

Tous les privilèges (par ordre alphabétique)

Les privilèges suivants sont disponibles dans le modèle de contrôle d’accès Snowflake. La signification de chaque privilège varie selon le type d’objet auquel il s’applique, et tous les objets ne prennent pas en charge tous les privilèges :

Privilège

Type d’objet

Description

ALL [ PRIVILEGES ]

Tout

Accorde tous les privilèges pour le type d’objet spécifié.

APPLY MASKING POLICY

Global

Grants ability to set a Column-level Security masking policy on a table or view column.

CREATE <type_objet>

Global, base de données, schéma

Donne la possibilité de créer un objet de <type_objet> (par exemple, CREATE TABLE donne la possibilité de créer une table dans un schéma).

CREATE ACCOUNT

Global

Permet de créer des comptes gérés. Ne s’applique actuellement qu’aux fournisseurs de données qui créent des comptes de lecteur pour partager des données avec les consommateurs.

CREATE SHARE

Global

Permet de créer des actions. S’applique aux fournisseurs de données pour le partage des données avec d’autres comptes.

DELETE

Table

Donne la capacité d’exécuter une commande DELETE sur la table.

EXECUTE TASK

Global

Accorde la capacité d’exécuter toutes les tâches appartenant au rôle.

IMPORT SHARE

Global

Permet de visualiser les actions partagées avec votre compte et de créer des bases de données à partir des actions. S’applique aux consommateurs de données.

OVERRIDE SHARE RESTRICTIONS

Global

Permet de définir la valeur du paramètre SHARE_RESTRICTIONS qui permet à un compte de fournisseur Business Critical d’ajouter un compte de consommateur (avec une édition non Business Critical) à un partage. Pour plus de détails, voir Activation du partage depuis un compte Business Critical vers un compte non Business Critical.

IMPORTED PRIVILEGES

Table

Permet d’autoriser l’accès à une base de données partagée à des rôles autres que le rôle de propriétaire. Ne s’applique qu’aux bases de données partagées.

INSERT

Table

Donne la capacité d’exécuter une commande INSERT sur la table.

MANAGE GRANTS

Global

Permet d’accorder ou de révoquer des privilèges sur n’importe quel objet comme si le rôle d’appel était le propriétaire de l’objet.

MODIFY

Moniteur de ressources, entrepôt, base de données, schéma

Permet de modifier les paramètres ou les propriétés d’un objet (par exemple, sur un entrepôt virtuel, permet de modifier la taille d’un entrepôt virtuel).

MONITOR

Moniteur de ressources, entrepôt, base de données, schéma, tâche

Permet de voir les détails d’un objet (par exemple, les requêtes et l’utilisation dans un entrepôt).

MONITOR EXECUTION

Global

Accorde la capacité de surveiller les exécutions de toutes les tâches du compte.

MONITOR USAGE

Global

Permet de surveiller l’utilisation au niveau du compte et les informations historiques des bases de données et entrepôts. Pour plus de détails, voir Permettre aux administrateurs sans compte de surveiller l’historique d’utilisation et de facturation. De plus, il est possible d’afficher les comptes gérés à l’aide de SHOW MANAGED ACCOUNTS.

OPERATE

Entrepôt, tâche

Permet de démarrer, d’arrêter, de suspendre ou de reprendre un entrepôt virtuel. Accorde la possibilité de suspendre ou de reprendre une tâche.

OWNERSHIP

Tout

Permet de supprimer, de modifier, d’accorder ou de révoquer l’accès à un objet. Requis pour renommer un objet. OWNERSHIP est un privilège spécial sur un objet qui est automatiquement accordé au rôle qui a créé l’objet, mais qui peut aussi être transféré à l’aide de la commande GRANT OWNERSHIP à un rôle différent par le rôle propriétaire (ou par tout rôle avec le privilège MANAGE GRANTS).

REFERENCES

Table

Permet de référencer une table en tant que table de clé unique/primaire pour une contrainte de clé étrangère.

SELECT

Table, table externe, vue, flux

Donne la possibilité d’exécuter une instruction SELECT sur la table/vue.

TRUNCATE

Table

Donne la capacité d’exécuter une commande TRUNCATE TABLE sur la table.

UPDATE

Table

Donne la capacité d’exécuter une commande UPDATE sur la table.

USAGE

Entrepôt, base de données, schéma

Donne la capacité d’exécuter une commande USE <objet> sur l’objet. Donne également la capacité d’exécuter une commande SHOW <objets> sur les objets dans une base de données ou un schéma. Cependant, un objet contenu n’est répertorié dans la sortie que si le rôle d’exécution possède également au moins un privilège sur l’objet.

Les autres sections de ce chapitre décrivent les privilèges spécifiques disponibles pour chaque type d’objet et leur utilisation.

Privilèges globaux

Privilège

Utilisation

Remarques

APPLY MASKING POLICY

Global

Grants ability to set a Column-level Security masking policy on a table or view column.

CREATE USER

Permet de créer un nouvel utilisateur.

CREATE ROLE

Permet de créer un nouveau rôle.

MANAGE GRANTS

Permet de modifier les attributions sur les objets dont le rôle n’est pas le propriétaire.

CREATE WAREHOUSE

Permet de créer un nouvel entrepôt virtuel.

Doit être accordé par le rôle ACCOUNTADMIN.

CREATE DATABASE

Permet de créer une nouvelle base de données ou de créer un clone d’une base de données existante.

Doit être accordé par le rôle ACCOUNTADMIN.

CREATE INTEGRATION

Permet de créer une intégration de notification, de sécurité ou de stockage.

Doit être accordé par le rôle ACCOUNTADMIN.

EXECUTE TASK

Accorde la capacité d’exécuter toutes les tâches appartenant au rôle.

Doit être accordé par le rôle ACCOUNTADMIN.

MONITOR EXECUTION

Accorde la capacité de surveiller les exécutions de toutes les tâches du compte.

Doit être accordé par le rôle ACCOUNTADMIN.

CREATE SHARE

Permet à un fournisseur de données de créer un partage. Pour plus de détails, voir Capacité des rôles non ACCOUNTADMIN à effectuer des tâches de partage de données.

Doit être accordé par le rôle ACCOUNTADMIN.

IMPORT SHARE

Permet à un consommateur de données de visualiser les partages partagés avec son compte, et de créer des bases de données à partir de ces partages. Pour plus de détails, voir Capacité des rôles non ACCOUNTADMIN à effectuer des tâches de partage de données.

Doit être accordé par le rôle ACCOUNTADMIN.

OVERRIDE SHARE RESTRICTIONS

Permet de définir la valeur du paramètre SHARE_RESTRICTIONS qui permet à un compte de fournisseur Business Critical d’ajouter un compte de consommateur (avec une édition non Business Critical) à un partage.

Pour plus de détails, voir Activation du partage depuis un compte Business Critical vers un compte non Business Critical.

CREATE ACCOUNT

Permet à un fournisseur de données de créer un nouveau compte géré (c’est-à-dire un compte de lecteur). Pour plus de détails, voir Gestion des comptes de lecteur.

Doit être accordé par le rôle ACCOUNTADMIN.

MONITOR USAGE

Permet de surveiller l’utilisation au niveau du compte et les informations historiques des bases de données et entrepôts. Pour plus de détails, voir Permettre aux administrateurs sans compte de surveiller l’historique d’utilisation et de facturation. De plus, il est possible d’afficher les comptes gérés à l’aide de SHOW MANAGED ACCOUNTS.

Doit être accordé par le rôle ACCOUNTADMIN.

ALL [ PRIVILEGES ]

Accorde tous les privilèges globaux.

Privilèges d’utilisateur et de rôle

Privilège

Utilisation

OWNERSHIP

Donne le contrôle total sur un utilisateur/rôle.

MONITOR

Utilisateur uniquement. Permet d’afficher l’historique de connexion de l’utilisateur.

Privilèges du moniteur de ressources

Privilège

Utilisation

MODIFY

Permet de modifier toutes les propriétés d’un moniteur de ressources, par exemple de modifier le quota de crédit mensuel.

MONITOR

Permet d’afficher un moniteur de ressources.

Privilèges de l’entrepôt virtuel

Privilège

Utilisation

MODIFY

Permet de modifier toutes les propriétés d’un entrepôt, y compris sa taille.

MONITOR

Permet de visualiser les requêtes actuelles et passées exécutées sur un entrepôt ainsi que les statistiques d’utilisation sur cet entrepôt.

OPERATE

Permet de modifier l’état d’un entrepôt (arrêt, démarrage, suspension, reprise) ainsi que d’interrompre toute requête en cours d’exécution.

USAGE

Permet d’utiliser un entrepôt virtuel et, par conséquent, d’exécuter des requêtes sur l’entrepôt.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur l’entrepôt.

OWNERSHIP

Transfère la propriété d’un entrepôt, ce qui donne un contrôle total sur l’entrepôt.

Privilèges d’intégration

Privilège

Utilisation

USAGE

Permet de référencer l’intégration de stockage lors de la création d’une zone de préparation (avec CREATE STAGE) ou de la modification d’une zone de préparation (avec ALTER STAGE).

USE_ANY_ROLE

Permet au client ou à l’utilisateur externe OAuth de changer de rôle uniquement si ce privilège est accordé au client ou à l’utilisateur. Configurez l’intégration de sécurité externe OAuth pour utiliser le paramètre EXTERNAL_OAUTH_ANY_ROLE_MODE à l’aide de CREATE SECURITY INTEGRATION ou ALTER SECURITY INTEGRATION.

Privilèges de base de données

Privilège

Utilisation

MODIFY

Permet de modifier tous les paramètres d’une base de données.

MONITOR

Permet d’exécuter la commande DESCRIBE sur la base de données.

USAGE

Permet d’utiliser une base de données. Des privilèges supplémentaires sont requis pour afficher ou exécuter des actions sur des objets dans une base de données.

CREATE SCHEMA

Permet de créer un nouveau schéma dans une base de données, y compris de cloner un schéma.

IMPORTED PRIVILEGES

Permet à des rôles autres que le rôle propriétaire d’accéder à une base de données partagée. S’applique uniquement aux bases de données partagées.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur une base de données.

OWNERSHIP

Transfère la propriété d’une base de données, ce qui permet un contrôle total sur la base de données.

Notez que la modification des propriétés d’une base de données, y compris des commentaires, nécessite le privilège OWNERSHIP pour la base de données.

Privilèges de schéma

Privilège

Utilisation

MODIFY

Permet de modifier les paramètres d’un schéma.

MONITOR

Permet d’exécuter la commande DESCRIBE sur le schéma.

USAGE

Permet d’utiliser un schéma, notamment en exécutant des commandes SHOW SCHEMAS pour répertorier les détails du schéma dans une base de données.

Pour exécuter des commandes SHOW <objets> sur des objets (tables, vues, étapes, formats de fichier, séquences, canaux ou fonctions) dans le schéma, un rôle doit disposer d’au moins un privilège accordé à l’objet.

CREATE TABLE

Permet de créer une nouvelle table dans un schéma, y compris de cloner une table.

CREATE EXTERNAL TABLE

Permet de créer une nouvelle table externe dans un schéma.

CREATE VIEW

Permet de créer une nouvelle vue dans un schéma.

CREATE MATERIALIZED VIEW

Permet de créer une nouvelle vue matérialisée dans un schéma.

CREATE MASKING POLICY

Permet de créer une nouvelle politique de masquage Sécurité au niveau des colonnes dans un schéma.

CREATE STAGE

Permet de créer une nouvelle zone de préparation dans un schéma, y compris de cloner une zone de préparation.

CREATE FILE FORMAT

Permet de créer un nouveau format de fichier dans un schéma, y compris de cloner un format de fichier.

CREATE SEQUENCE

Permet de créer une nouvelle séquence dans un schéma, y compris de cloner une séquence.

CREATE FUNCTION

Permet de créer une nouvelle fonction UDF ou externe dans un schéma.

CREATE PIPE

Permet de créer un nouveau canal dans un schéma.

CREATE STREAM

Permet de créer un nouveau flux dans un schéma, y compris de cloner un flux.

CREATE TASK

Permet de créer une nouvelle tâche dans un schéma, y compris de cloner une tâche.

CREATE PROCEDURE

Permet de créer une nouvelle procédure stockée dans un schéma.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur un schéma.

OWNERSHIP

Transfère la propriété d’un schéma, ce qui confère un contrôle total.

Note

  • Changer les propriétés d’un schéma, y compris les commentaires, nécessite le privilège OWNERSHIP pour la base de données.

  • L’utilisation d’un schéma nécessite également le privilège USAGE sur la base de données parent.

Privilèges de table

Privilège

Utilisation

SELECT

Permet d’exécuter une instruction SELECT sur une table.

INSERT

Permet d’exécuter une commande INSERT sur une table. Permet également d’utiliser la commande ALTER TABLE avec une clause RECLUSTER pour regrouper manuellement une table avec une clé de clustering.

UPDATE

Permet d’exécuter une commande UPDATE sur une table.

TRUNCATE

Permet d’exécuter une commande TRUNCATE TABLE sur une table.

DELETE

Permet d’exécuter une commande DELETE sur une table.

REFERENCES

Permet de référencer une table en tant que table de clé unique/primaire pour une contrainte de clé étrangère.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur une table.

OWNERSHIP

Transfère la propriété d’une table, ce qui confère le contrôle total de la table. Nécessaire pour modifier la plupart des propriétés d’une table, à l’exception du regroupement.

Note

Effectuer des opérations sur une table nécessite également le privilège USAGE sur la base de données et le schéma parent.

Privilèges de table externe

Privilège

Utilisation

SELECT

Permet d’exécuter une instruction SELECT sur une table externe.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, à l’exception de OWNERSHIP, sur une table externe.

OWNERSHIP

Transfère la propriété d’une vue, ce qui confère un contrôle total sur la table externe ; nécessaire pour actualiser une table externe.

Note

Effectuer des opérations sur une table externe nécessite également le privilège USAGE sur la base de données et le schéma parent.

Affichage des privilèges

Les privilèges suivants s’appliquent aux vues standard et matérialisées.

Privilège

Utilisation

SELECT

Permet d’exécuter une instruction SELECT sur une vue.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur une vue.

OWNERSHIP

Transfère la propriété d’une vue, ce qui donne un contrôle total sur la vue. Requis pour modifier une vue.

Note

Un utilisateur qui possède un privilège SELECT sur une vue n’a pas besoin de privilège SELECT sur les tables que la vue utilise. Cela signifie que vous pouvez utiliser une vue pour donner un accès de rôle à un sous-ensemble d’une table uniquement. Par exemple, vous pouvez créer une vue qui accède aux informations de facturation médicales, mais pas aux informations de diagnostic médical dans la même table. Vous pouvez alors accorder des privilèges sur cette vue au rôle de « comptable » afin que les comptables puissent consulter les informations de facturation sans voir le diagnostic du patient.

L’utilisation d’une vue nécessite également le privilège USAGE sur la base de données et le schéma parent.

Privilèges de zone de préparation

Privilège

Utilisation

USAGE

Active l’utilisation d’un objet de zones de préparation externes dans une instruction SQL. Ne s’applique pas aux zones de préparation internes.

READ

Permet d’effectuer toute opération nécessitant une lecture à partir d’une zone de préparation interne (GET, LIST, COPY INTO <table>, etc.). Ne s’applique pas aux zones de préparation externes.

WRITE

Permet d’effectuer toute opération nécessitant une écriture vers une zone de préparation interne (PUT, REMOVE, COPY INTO <emplacement>, etc.). Ne s’applique pas aux zones de préparation externes.

ALL [ PRIVILEGES ]

Accorde tous les privilèges applicables, sauf OWNERSHIP, sur la zone de préparation (interne ou externe).

OWNERSHIP

Transfère la propriété d’une zone de préparation, ce qui confère le contrôle total de la zone de préparation.

Note

  • Lors de l’octroi des privilèges READ et WRITE pour une zone de préparation interne, le privilège READ doit être accordé avant ou en même temps que le privilège WRITE.

  • Lors de la révocation des privilèges READ et WRITE pour une zone de préparation interne, le privilège WRITE doit être révoqué avant ou en même temps que le privilège READ.

  • Effectuer des opérations une zone de préparation nécessite également le privilège USAGE sur la base de données et le schéma parent.

Privilèges de format de fichier

Privilège

Utilisation

USAGE

Active l’utilisation d’un format de fichier dans une instruction SQL.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur le format de fichier.

OWNERSHIP

Transfère la propriété d’un format de fichier, ce qui donne un contrôle total sur le format de fichier. Nécessaire pour modifier un format de fichier.

Note

Effectuer des opérations sur des formats de fichier nécessite également le privilège USAGE sur la base de données et le schéma parent.

Privilèges de canal

Privilège

Utilisation

OWNERSHIP

Transfère la propriété d’un canal, ce qui donne un contrôle total sur le canal. Nécessaire pour le chargement des données à l’aide de Snowpipe.

Note

Effectuer des opérations sur des canaux nécessite également le privilège USAGE sur la base de données et le schéma parent.

Privilèges de flux

Privilège

Utilisation

SELECT

Permet d’exécuter une instruction SELECT sur un flux.

OWNERSHIP

Transfère la propriété d’un flux, ce qui confère le contrôle total du flux.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur le flux.

Privilèges de tâches

Privilège

Utilisation

MONITOR

Permet d’afficher les détails de la tâche (à l’aide de DESCRIBE TASK ou SHOW TASKS).

OPERATE

Permet d’afficher les détails de la tâche (à l’aide de SHOW TASKS) et de reprendre ou de suspendre la tâche.

OWNERSHIP

Transfère la propriété d’une tâche, ce qui confère le contrôle total de la tâche.

Privilèges de politique de masquage

Privilège

Utilisation

APPLY

Permet d’appliquer la politique de masquage Sécurité au niveau des colonnes aux opérations non définies et définies.

OWNERSHIP

Transfère la propriété d’une politique de masquage Sécurité au niveau des colonnes, qui accorde un contrôle total sur la politique de masquage. Nécessaire pour modifier la plupart des propriétés d’une politique de masquage.

Note

Des opérations sur une politique de masquage nécessitent également le privilège USAGE sur la base de données et le schéma parents.

Autres privilèges d’objet de base de données (séquences, UDFs)

Les privilèges suivants s’appliquent aux séquences, aux fonctions définies par l’utilisateur (UDFs) et aux fonctions externes.

Privilège

Utilisation

USAGE

Active l’utilisation de l’objet spécifié dans une instruction SQL.

ALL [ PRIVILEGES ]

Accorde tous les privilèges, sauf OWNERSHIP, sur l’objet spécifié.

OWNERSHIP

Transfère la propriété de l’objet spécifié, ce qui donne un contrôle total sur l’objet. Nécessaire pour modifier l’objet.

Note

Effectuer des opérations sur ces autres objets de base de données nécessite également le privilège USAGE sur la base de données et le schéma parent.