Privilèges et objets sécurisables dans Unity Catalog

S’applique à :coche pour oui Databricks SQL coche marquée oui Databricks Runtime coche pour oui Unity Catalog uniquement

Un privilège est un droit accordé à un principal pour opérer sur un objet sécurisable dans le metastore. Le modèle de privilèges et les objets sécurisables diffèrent selon que vous utilisez un metastore Unity Catalog ou le metastore Hive hérité. Cet article décrit le modèle de privilèges pour Unity Catalog. Si vous utilisez le metastore Hive, consultez Privilèges et objets sécurisables dans le metastore Hive.

Notes

Cet article fait référence aux privilèges Unity Catalog et au modèle d’héritage dans Privilege Model version 1.0. Si vous avez créé votre metastore Unity Catalog pendant la préversion publique (avant le 25 août 2022), effectuez une mise à niveau vers Privilege Model version 1.0 en suivant Mise à niveau vers l’héritage des privilèges.

Objets sécurisables

Un objet sécurisable est un objet défini dans Unity Catalog sur lequel des privilèges peuvent être accordés à un principal. Pour gérer des privilèges sur un objet quelconque, vous devez en être le propriétaire.

Syntaxe

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    MATERIALIZED VIEW view_name |
    VIEW view_name |
    VOLUME volume_name
  }

Vous pouvez aussi spécifier SERVER au lieu de CONNECTION et DATABASE au lieu de SCHEMA.

Paramètres

  • CATALOGcatalog_name

    Contrôle l’accès à l’ensemble du catalogue de données.

  • CONNECTIONnom_connexion

    Contrôle l’accès à la connexion.

  • EXTERNAL LOCATIONlocation_name

    Contrôle l’accès à un emplacement externe.

  • FUNCTIONfunction_name

    Contrôle l’accès à une fonction définie par l’utilisateur.

  • MATERIALIZED VIEWview_name

    Important

    Cette fonctionnalité est disponible en préversion publique. Pour vous inscrire et obtenir un accès, remplissez ce formulaire.

    Contrôle l’accès à une vue matérialisée.

  • METASTORE

    Contrôle l’accès au metastore Unity Catalog attaché à l’espace de travail. Lorsque vous gérez des privilèges sur un metastore, vous n’incluez pas le nom du metastore dans une commande SQL. Unity Catalog accorde ou révoque le privilège sur le metastore attaché à votre espace de travail.

  • REGISTERED MODEL

    Contrôle l’accès à un modèle inscrit MLflow.

  • SCHEMAschema_name

    Contrôle l’accès à un schéma.

  • STORAGE CREDENTIALcredential_name

    Contrôle l’accès à des informations d’identification de stockage.

  • SHAREshare_name

    Contrôle l’accès sur un partage à un destinataire.

  • TABLEtable_name

    Contrôle l’accès à une table managée ou externe. Si la table est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND.

  • VIEWview_name

    Contrôle l’accès à une vue. Si la vue est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND.

  • VOLUMEvolume_name

    Contrôle l’accès à un volume. Si le volume est introuvable, Azure Databricks déclenche une erreur.

Modèle d’héritage

Les objets sécurisables dans Unity Catalog sont hiérarchiques et les privilèges sont hérités vers le bas. Cela signifie que l’obtention d’un privilège sur un catalogue accorde automatiquement le privilège à tous les schémas actuels et futurs au sein du catalogue. De même, les privilèges accordés sur un schéma sont hérités par toutes les tables et vues actuelles et futures de ce schéma.

Par exemple, si vous accordez le privilège SELECT sur un schéma à un utilisateur, l’utilisateur reçoit automatiquement le privilège SELECT sur toutes les tables, vues et vues matérialisées actuelles et futures dans le schéma.

Types de privilèges

Le tableau suivant indique quels privilèges Unity Catalog sont associés aux objets sécurisables Unity Catalog.

Élément sécurisable Privilèges
Metastore CREATE CATALOG, CREATE CONNECTION, CREATE EXTERNAL LOCATION, CREATE PROVIDER, CREATE RECIPIENT, CREATE SHARE, CREATE STORAGE CREDENTIAL, SET SHARE PERMISSION, USE MARKETPLACE ASSETS, USE PROVIDER, USE RECIPIENT, USE SHARE
Catalogue ALL PRIVILEGES, APPLY TAG, BROWSE, CREATE SCHEMA, USE CATALOG

Tous les utilisateurs ont USE CATALOG sur le catalogue main par défaut.

Les types de privilèges suivants s’appliquent aux objets sécurisables dans un catalogue. Vous pouvez accorder ces privilèges au niveau du catalogue pour les appliquer aux objets pertinents actuels et futurs dans le catalogue.

CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE FOREIGN CATALOG, READ VOLUME, REFRESH, WRITE VOLUME, EXECUTE, MODIFY, SELECT, USE SCHEMA
schéma ALL PRIVILEGES, APPLY TAG, CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE MATERIALIZED VIEW, USE SCHEMA

Les types de privilèges suivants s’appliquent aux objets sécurisables au sein d’un schéma. Vous pouvez accorder ces privilèges au niveau du schéma pour les appliquer aux objets actuels et futurs pertinents dans le schéma.

EXECUTE, MODIFY, SELECT, READ VOLUME, REFRESH, WRITE VOLUME
Table ALL PRIVILEGES, APPLY TAG, MODIFY, SELECT
Vue matérialisée ALL PRIVILEGES, APPLY TAG, REFRESH, SELECT
Affichage ALL PRIVILEGES, APPLY TAG, SELECT
Volume ALL PRIVILEGES, READ VOLUME, WRITE VOLUME
Emplacement externe ALL PRIVILEGES, BROWSE, CREATE EXTERNAL TABLE, CREATE EXTERNAL VOLUME, READ FILES, WRITE FILES, CREATE MANAGED STORAGE
Informations d’identification de stockage ALL PRIVILEGES, CREATE EXTERNAL LOCATION, CREATE EXTERNAL TABLE, READ FILES, WRITE FILES
Connexion ALL PRIVILEGES, CREATE FOREIGN CATALOG, USE CONNECTION
Fonction ALL PRIVILEGES, EXECUTE
Modèle inscrit ALL PRIVILEGES, APPLY TAG, EXECUTE
Partager SELECT (peut être octroyé à RECIPIENT)
Recipient None
Fournisseur Aucune
  • APPLY TAG

    Appliquez et modifiez des balises sur un objet.

  • ALL PRIVILEGES

    Permet d’accorder ou de révoquer tous les privilèges applicables à l’objet sécurisable et à ses objets enfants sans les spécifier explicitement. Cela s’étend à tous les privilèges disponibles au moment où les vérifications des autorisations sont effectuées. Il n’accorde pas à l’utilisateur chaque privilège applicable de manière individuelle au moment de l’octroi.

    Quand ALL PRIVILEGES est révoqué, seul le privilège ALL PRIVILEGES lui-même est révoqué. Les utilisateurs conservent tous les autres privilèges qui leur ont été accordés de manière séparée.

  • BROWSE

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Affichez les métadonnées d’un objet en utilisant Catalog Explorer, le navigateur de schémas, les résultats de la recherche, le graphique de traçabilité, information_schema et l’API REST. L’utilisateur n’a pas besoin du privilège USE CATALOG sur le catalogue parent ni du privilège USE SCHEMA sur le schéma parent.

  • CREATE CATALOG

    Créez des catalogues dans un metastore Unity Catalog.

  • CREATE CONNECTION

    Créer des connexions étrangères dans un metastore Unity Catalog.

  • CREATE EXTERNAL LOCATION

    Créez un emplacement externe à l’aide des informations d’identification de stockage. Lorsqu’il est appliqué à des informations d’identification de stockage, permet à un utilisateur de créer un emplacement externe à l’aide des informations d’identification de stockage. Ce privilège doit également être accordé à un utilisateur sur le metastore pour lui permettre de créer un emplacement externe dans ce metastore.

  • CREATE EXTERNAL TABLE

    Créer des tables externes à l’aide des informations d’identification de stockage ou d’un emplacement externe.

  • CREATE EXTERNAL VOLUME

    Créez des volumes externes en utilisant l’emplacement externe.

  • CREATE FOREIGN CATALOG

    Créez des catalogues sur une connexion étrangère. Chaque catalogue étranger expose ensuite les schémas disponibles dans le système cible fédéré.

  • CREATE FUNCTION

    Créez une fonction dans un schéma. L’utilisateur requiert également le privilège USE CATALOG sur le catalogue et le privilège USE SCHEMA sur le schéma.

  • CREATE MANAGED STORAGE

    Permet à un utilisateur de spécifier un emplacement pour stocker des tables managées au niveau du catalogue ou du schéma, en remplaçant le stockage racine par défaut pour le metastore Unity Catalog.

  • CREATE MATERIALIZED VIEW

    Permet à un utilisateur de créer une vue matérialisée dans le schéma. Étant donné que les privilèges sont hérités, CREATE MATERIALIZED VIEW peut également être accordé sur un catalogue, ce qui permet à un utilisateur de créer une table ou de l’afficher dans n’importe quel schéma existant ou futur dans le catalogue.

    L’utilisateur doit également disposer des privilèges USE CATALOG et USE SCHEMA respectivement sur son catalogue parent et sur son schéma parent.

  • CREATE MODEL

    Permet à un utilisateur de créer un modèle inscrit MLflow dans le schéma. Étant donné que les privilèges sont hérités, CREATE MODEL peut également être octroyé sur un catalogue. Cela permet à un utilisateur de créer un modèle inscrit dans n’importe quel schéma existant ou futur dans le catalogue.

    L’utilisateur doit également disposer du privilège USE CATALOG sur son catalogue parent et USE SCHEMA sur son schéma parent.

  • CREATE PROVIDER

    (Pour les destinataires de données Delta Sharing) Créez un fournisseur dans un metastore Unity Catalog.

  • CREATE RECIPIENT

    (Pour les fournisseurs de données Delta Sharing) Créez un destinataire dans un metastore Unity Catalog.

  • CREATE SCHEMA

    Créez un schéma dans un catalogue. L’utilisateur doit également disposer du privilège USE CATALOG sur le catalogue.

  • CREATE SHARE

    (Pour les fournisseurs de données Delta Sharing) Créez un partage dans un metastore Unity Catalog.

  • CREATE STORAGE CREDENTIAL

    Créez des informations d'identification de stockage dans un metastore d'Unity Catalog.

  • CREATE TABLE

    Créez une table ou une vue dans un schéma. L’utilisateur requiert également le privilège USE CATALOG sur le catalogue et le privilège USE SCHEMA sur le schéma. Pour créer une table externe, l’utilisateur a également besoin du privilège sur l’emplacement externe CREATE EXTERNAL TABLE ou des informations d’identification de stockage.

  • CREATE VOLUME

    Créez un volume dans un schéma. L’utilisateur requiert également le privilège USE CATALOG sur le catalogue et le privilège USE SCHEMA sur le schéma. Pour créer un volume externe, l’utilisateur a également besoin du privilège CREATE EXTERNAL VOLUME sur l’emplacement externe.

  • EXECUTE

    Invoquez une fonction définie par l’utilisateur. L’utilisateur requiert également le privilège USE CATALOG sur le catalogue et le privilège USE SCHEMA sur le schéma.

  • MODIFY

    COPY INTO, UPDATEDELETE, INSERT ou MERGE INTO la table.

  • READ FILES

    Interroger les fichiers directement à l’aide des informations d’identification de stockage ou de l’emplacement externe.

  • READ VOLUME

    Interrogez les fichiers dans le volume.

  • REFRESH

    Permet à un utilisateur d’actualiser une vue matérialisée si l’utilisateur a également USE CATALOG sur son catalogue parent et USE SCHEMA sur son schéma parent. L’utilisateur requiert également le privilège USE CATALOG sur le catalogue et le privilège USE SCHEMA sur le schéma.

  • SELECT

    Interroger une table ou un affichage, appeler une fonction définie par l’utilisateur ou une fonction anonyme, ou sélectionner ANY FILE. L’utilisateur a besoin du privilège SELECT sur la table, la vue ou la fonction, ainsi que du privilège USE CATALOG sur le catalogue de l’objet et USE SCHEMA sur le schéma de l’objet.

  • SET SHARE PERMISSION

    Dans Delta Sharing, cette autorisation, combinée avec USE SHARE et USE RECIPIENT (ou la propriété du destinataire), donne à un utilisateur fournisseur la possibilité d’accorder à un destinataire l’accès à un partage. Combinée à USE SHARE, elle donne la possibilité de transférer la propriété d’un partage à un autre utilisateur, groupe ou principal de service.

  • USE CATALOG

    Obligatoire, mais pas suffisant pour référencer des objets dans un catalogue. Le principal doit également disposer de privilèges sur les objets sécurisables individuels. Non requis pour un utilisateur souhaitant lire les métadonnées d’un objet à l’aide du privilège BROWSE.

  • USE CONNECTION

    Obligatoire pour lire les métadonnées sur une connexion étrangère ou sur toutes les connexions étrangères quand elles sont utilisées sur le metastore.

  • USE MARKETPLACE ASSETS

    Activé par défaut pour tous les metastores Unity Catalog. Dans la Place de marché Databricks, ce privilège permet à l’utilisateur d’obtenir un accès instantané ou de demander l’accès aux produits de données partagés dans un référencement de la Place de marché. Permet également à un utilisateur d’accéder au catalogue en lecture seule créé lorsqu’un fournisseur partage un produit de données. Sans ce privilège, l’utilisateur aurait besoin des privilèges CREATE CATALOG et USE PROVIDER ou du rôle d’administrateur de metastore. Cela vous permet de limiter le nombre d’utilisateurs dotés de ces autorisations puissantes.

  • USE PROVIDER

    Dans Delta Sharing, elle donne un accès utilisateur destinataire en lecture seule à tous les fournisseurs dans un metastore destinataire et à leurs partages. Combiné au privilège CREATE CATALOG, ce privilège permet à un utilisateur destinataire, qui n’est pas un administrateur de metastore, de monter un partage en tant que catalogue. Cela vous permet de limiter le nombre d’utilisateurs disposant du rôle d’administrateur de metastore puissant.

  • USE RECIPIENT

    Dans Delta Sharing, elle donne à un utilisateur fournisseur un accès en lecture seule à tous les destinataires d’un metastore de fournisseur et à leurs partages. Cela permet à un utilisateur fournisseur qui n’est pas administrateur de metastore d’afficher les détails du destinataire, l’état d’authentification du destinataire et la liste des partages que le fournisseur a partagés avec le destinataire.

    Dans la Place de marché Databricks, les utilisateurs fournisseurs ont la possibilité d’afficher les annonces et les demandes des consommateurs dans la console fournisseur.

  • USE SCHEMA

    Obligatoire, mais pas suffisant pour référencer des objets dans un schéma. Le principal doit également disposer de privilèges sur les objets sécurisables individuels. Non requis pour un utilisateur souhaitant lire les métadonnées d’un objet à l’aide du privilège BROWSE.

  • USE SHARE

    Dans Delta Sharing, elle donne un accès utilisateur fournisseur en lecture seule à tous les partages définis dans un metastore fournisseur. Cela permet à un utilisateur fournisseur qui n’est pas administrateur de metastore de répertorier les partages et les ressources (tables et notebooks) dans un partage, ainsi que les destinataires du partage.

    Dans la Place de marché Databricks, les utilisateurs fournisseurs peuvent afficher des détails sur les données partagées dans une annonce.

  • WRITE FILES

    Copier (COPY INTO) directement dans des fichiers régis par les informations d’identification de stockage ou l’emplacement externe.

  • WRITE VOLUME

    Utilisez COPY INTO pour copier directement les fichiers dans un volume.

Exemples

-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Revoke a privilege from the general public group.
> REVOKE USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;