Partage via


Gérer les privilèges dans Unity Catalog

Cet article explique comment contrôler l’accès aux données et autres objets dans Unity Catalog. Pour découvrir plus d’informations plus sur la façon dont ce modèle diffère du contrôle d’accès dans le metastore Hive, consultez Utiliser Unity Catalog et le metastore Hive hérité.

Qui peut gérer les privilèges ?

Initialement, les utilisateurs n’ont pas accès aux données d’un metastore. Les administrateurs de compte Azure Databricks, les administrateurs d’espace de travail et les administrateurs de metastore disposent de privilèges par défaut pour la gestion de Unity Catalog. Consultez Privilèges Administrateur dans Unity Catalog.

Tous les objets sécurisables dans Unity Catalog ont un propriétaire. Les propriétaires d’objets ont tous les privilèges sur cet objet, y compris la possibilité d’accorder des privilèges à d’autres principaux. Consultez Gérer la propriété de l’objet Unity Catalog.

Les privilèges peuvent être accordés par un administrateur de metastore, le propriétaire d’un objet ou le propriétaire du catalogue ou du schéma qui contient l’objet. Les administrateurs de compte peuvent également accorder des privilèges directement sur un metastore.

Privilèges de catalogue d’espace de travail

Si votre espace de travail a été activé automatiquement pour Unity Catalog, l’espace de travail est attaché à un metastore par défaut et un catalogue d’espaces de travail est créé pour votre espace de travail dans le metastore. Les administrateurs d’espace de travail sont les propriétaires par défaut du catalogue d’espaces de travail. En tant que propriétaires, ils peuvent gérer les privilèges sur le catalogue d’espaces de travail et tous les objets enfants.

Tous les utilisateurs de l’espace de travail reçoivent le privilège USE CATALOG sur le catalogue d’espaces de travail. Les utilisateurs de l’espace de travail reçoivent également les privilèges USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION et CREATE MATERIALIZED VIEW sur le schéma default dans le catalogue.

Pour plus d’informations, consultez Activation automatique d’Unity Catalog.

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. L'objet de plus haut niveau dont les privilèges sont hérités est le catalogue. Cela signifie que l’octroi d’un privilège sur un catalogue ou un schéma accorde automatiquement le privilège à tous les objets actuels et futurs au sein du catalogue ou du schéma. Par exemple, si vous accordez le privilège SELECT à un utilisateur sur un catalogue, celui-ci est alors en mesure de sélectionner (lire) toutes les tables et tous les affichages dans ce catalogue. Les privilèges accordés sur un metastore Unity Catalog ne sont pas hérités.

Hiérarchie des objets Unity Catalog

Les propriétaires d’un objet bénéficient automatiquement de tous les privilèges sur cet objet. En outre, les propriétaires d’objet peuvent accorder des privilèges sur l’objet lui-même et sur tous ses objets enfants. Cela signifie que les propriétaires d’un schéma ne disposent pas automatiquement de tous les privilèges sur les tables du schéma, mais qu’ils peuvent s’octroyer des privilèges sur les tables du schéma.

Remarque

Si vous avez créé votre metastore Unity Catalog pendant la préversion publique (avant le 25 août 2022), il est possible que vous soyez sur un modèle de privilège plus ancien qui ne prend pas en charge le modèle actuel d’héritage. Vous pouvez mettre à niveau la version 1.0 du modèle de privilèges pour bénéficier de l’héritage de privilèges. Consultez Mise à niveau avec l’héritage des privilèges.

Afficher, accorder et révoquer des privilèges

Vous pouvez gérer les privilèges des objets metastore en utilisant des commandes SQL, l’Interface CLI de Databricks, le fournisseur Databricks Terraform ou l’Explorateur de catalogues.

Dans les commandes SQL qui suivent, remplacez ces valeurs d’espace réservé :

  • <privilege-type> est un type de privilège Unity Catalog. Voir Types de privilèges.
  • <securable-type> : type de l’objet sécurisable, par exemple CATALOG ou TABLE. Voir Objets sécurisables
  • <securable-name> : nom du sécurisable. Si le type sécurisable est METASTORE, n’indiquez pas le nom sécurisable. Il est supposé être le metastore attaché à l’espace de travail.
  • <principal> est un utilisateur, un principal de service (représenté par sa valeur applicationId) ou un groupe. Les noms des utilisateurs, des principaux services et des groupes qui contiennent des caractères spéciaux doivent être placés entre des accents graves (` `). Consultez Principal.

Afficher les octrois sur les objets d’un metastore Unity Catalog

Autorisations requises : l’administrateur de metastore, le propriétaire de l’objet ou le propriétaire du catalogue ou du schéma qui contient l’objet. Vous pouvez également consulter votre propres octrois.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Sélectionnez l’objet, par exemple un catalogue, un schéma, une table ou un affichage.
  3. Accédez à l’onglet Autorisations.

SQL

Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL. Vous pouvez afficher les octrois sur un principal spécifique, ou vous pouvez montrer tous les octrois sur un objet sécurisable.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

Par exemple, la commande suivante montre tous les octrois sur un schéma nommé default dans le catalogue parent nommé main :

  SHOW GRANTS ON SCHEMA main.default;

Cette commande renvoie :

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Octroyer des autorisations sur des objets dans un metastore Unity Catalog

Autorisations requises : l’administrateur de metastore, le propriétaire de l’objet ou le propriétaire du catalogue ou du schéma qui contient l’objet.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Sélectionnez l’objet, par exemple un catalogue, un schéma, une table ou un affichage.
  3. Accédez à l’onglet Autorisations.
  4. Cliquez sur Octroyer.
  5. Entrez l’adresse e-mail d’un utilisateur ou le nom d’un groupe.
  6. Sélectionnez les autorisations à accorder.
  7. Cliquez sur OK.

SQL

Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

Par exemple, la commande suivante accorde à un groupe nommé finance-team l’accès à la création de tables dans un schéma nommé default, avec le catalogue parent nommé main :

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

Révoquer des autorisations sur des objets dans un metastore Unity Catalog

Autorisations requises : l’administrateur de metastore, le propriétaire de l’objet ou le propriétaire du catalogue ou du schéma qui contient l’objet.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Sélectionnez l’objet, par exemple un catalogue, un schéma, une table ou un affichage.
  3. Accédez à l’onglet Autorisations.
  4. Sélectionnez un privilège qui a été accordé à un utilisateur, à un principal de service ou à un groupe.
  5. Cliquez sur Révoquer.
  6. Pour confirmer, cliquez sur Révoquer.

SQL

Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL.

  REVOKE <privilege-type> ON <securable-type> <securable-name> TO <principal>

Par exemple, la commande suivante révoque un groupe nommé finance-team l’accès à la création de tables dans un schéma nommé default, avec le catalogue parent nommé main :

  REVOKE CREATE TABLE ON SCHEMA main.default TO `finance-team`;

Afficher les octrois sur un metastore

Autorisations requises : administrateur de metastore ou administrateur de compte. Vous pouvez également consulter votre propres octrois sur un metastore.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Cliquez sur l’icône à côté du nom du metastore en regard de l’étiquette de page Catalog Explorer.
  3. Accédez à l’onglet Autorisations.

SQL

Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL. Vous pouvez afficher les octrois sur un principal spécifique, ou vous pouvez montrer tous les octrois sur un metastore.

  SHOW GRANTS [principal] ON METASTORE

Octroyez des autorisations sur un metastore

Autorisations requises : administrateur de metastore ou administrateur de compte.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Cliquez sur l’icône à côté du nom du metastore en regard de l’étiquette de page Catalog Explorer.
  3. Sous l'onglet Autorisations, cliquez sur Octroyer.
  4. Entrez l’adresse e-mail d’un utilisateur ou le nom d’un groupe.
  5. Sélectionnez les autorisations à accorder.
  6. Cliquez sur OK.

SQL

  1. Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL.

    GRANT <privilege-type> ON METASTORE TO <principal>`;
    

    Lorsque vous accordez des privilèges sur un metastore, vous n’incluez pas le nom du metastore, car on suppose qu’il s’agit du metastore attaché à votre espace de travail.

Révoquer des autorisations sur un metastore

Autorisations requises : administrateur de metastore ou administrateur de compte.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône CatalogueCatalogue.
  2. Cliquez sur l’icône à côté du nom du metastore en regard de l’étiquette de page Catalog Explorer.
  3. Sous l’onglet Autorisations, sélectionnez un utilisateur ou un groupe, puis cliquez sur Révoquer.
  4. Pour confirmer, cliquez sur Révoquer.

SQL

  1. Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requête SQL.

    REVOKE <privilege-type> ON METASTORE TO <principal>;
    

    Lorsque vous révoquez des privilèges sur un metastore, vous n’incluez pas le nom du metastore, car on suppose qu’il s’agit du metastore attaché à votre espace de travail.