Privilèges et objets sécurisables dans le metastore Hive

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

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 le metastore Hive hérité. Si vous utilisez Unity Catalog, consultez Privilèges et objets sécurisables dans Unity Catalog.

Objets sécurisables dans le metastore Hive

Un objet sécurisable est un objet défini dans le metastore 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 ou l’administrateur.

Syntaxe

  securable_object
    { ANY FILE |
      CATALOG [ catalog_name ] |
      { SCHEMA | DATABASE } schema_name |
      FUNCTION function_name |
      [ TABLE ] table_name |
      VIEW view_name
      }

Paramètres

  • ANY FILE

    Contrôle l’accès au système de fichiers sous-jacent.

  • CATALOGcatalog_name

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

  • { SCHEMA | DATABASE }schema_name

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

  • FUNCTIONfunction_name

    Contrôle l’accès à une fonction nommée.

  • [ TABLE ]table_name

    Contrôle l’accès à une table managée ou externe.

  • VIEWview_name

    Contrôle l’accès aux vues SQL.

Modèle d’héritage

Les objets sécurisables dans le metastore Hive sont hiérarchiques et les privilèges sont hérités vers le bas. Cela signifie que l’octroi ou le refus d’un privilège sur le CATALOG autorise ou refuse automatiquement le privilège à tous les schémas dans le catalogue. De même, les privilèges accordés sur un objet de schéma sont hérités par tous les objets de ce schéma. Ce modèle est vrai pour tous les objets sécurisables.

Si vous refusez à un utilisateur des privilèges sur une table, cet utilisateur ne peut pas voir celle-ci en tentant d’afficher la liste de toutes les tables dans le schéma. Si vous refusez à un utilisateur des privilèges sur un schéma, cet utilisateur ne peut pas voir que le schéma existe en tentant d’afficher la liste de tous les schémas dans le catalogue.

Types de privilèges

Le tableau suivant indique les privilèges associés aux divers objets sécurisables.

Type de privilège ANONYMOUS FUNCTION ANY FILE CATALOG SCHEMA FUNCTION TABLE VIEW
CREATE Oui Oui
MODIFY Oui Oui Oui Oui
READ_METADATA Oui Oui Oui Oui
SELECT Oui Oui Oui Oui Oui Oui Oui
USAGE Oui Oui
  • ALL PRIVILEGES

    Permet d’accorder ou de révoquer tous les privilèges applicables à l’élément sécurisable et à ses objets enfant sans les spécifier explicitement. Cela s’étend à tous les privilèges disponibles au moment où les vérifications des autorisations sont effectuées.

  • CREATE

    Créer des objets dans le catalogue ou le schéma.

  • MODIFY

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

    Si l’objet sécurisable est le hive_metastore ou un schéma au sein de celui-ci, l’octroi du privilège MODIFY a pour effet d’octroyer le privilège MODIFY sur l’ensemble des tables et affichages actuels et futurs au sein de l’objet sécurisable.

  • READ_METADATA

    Découvrir l’objet sécurisable dans SHOW et interroger l’objet dans DESCRIBE

    Si l’objet sécurisable est le catalogue hive_metastore ou un schéma au sein de celui-ci, l’octroi du privilège READ_METADATA a pour effet d’octroyer le privilège READ_METADATA sur l’ensemble des tables et affichages actuels et futurs au sein de l’objet sécurisable.

  • READ FILES

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

  • 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, l’affichage ou la fonction, ainsi que du privilège USAGE sur le schéma et le catalogue de l’objet.

    Si l’objet sécurisable est le hive_metastore ou un schéma au sein de celui-ci, l’octroi du privilège SELECT a pour effet d’octroyer le privilège SELECT sur l’ensemble des tables et affichages actuels et futurs au sein de l’objet sécurisable.

  • USAGE

    Obligatoire, mais pas suffisant pour référencer des objets dans un catalogue ou un schéma. Le principal doit également disposer de privilèges sur les objets sécurisables individuels.

  • WRITE FILES

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

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 USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;