Partager via


Activer l’accès aux données externes au catalogue Unity

Important

Cette fonctionnalité est disponible en préversion publique.

Azure Databricks fournit un accès aux tables du catalogue Unity à l’aide de l’API REST Unity et du catalogue REST Apache Iceberg.

Un administrateur de metastore doit activer l’accès aux données externes pour chaque metastore auquel vous devez accéder en externe. L’utilisateur ou le principal de service qui configure la connexion doit avoir le EXTERNAL USE SCHEMA privilège pour chaque schéma où il doit effectuer des opérations prises en charge : lecture à partir de tables gérées ou création, lecture et écriture dans des tables externes.

L’API REST Unity prend en charge les lectures directes pour les tables Delta. Le catalogue REST Iceberg permet les lectures pour les tables Delta, ainsi que les lectures et écritures pour les tables Iceberg. Consultez Accéder aux données de Databricks à l’aide de systèmes externes.

Activer l’accès aux données externes sur le metastore

Pour permettre aux moteurs externes d’accéder aux données dans un metastore, un administrateur de metastore doit activer l’accès aux données externes pour le metastore. Cette option est désactivée par défaut pour empêcher l’accès externe non autorisé.

Pour activer l’accès aux données externes, procédez comme suit :

  1. Dans un espace de travail Azure Databricks attaché au metastore, cliquez sur l’icône Données.Catalogue.
  2. Cliquez sur l’icône Engrenage. Icône d’engrenage en haut du volet Catalogue et sélectionnez Metastore.
  3. Sous l’onglet Détails, activez Accès aux données externes.

Remarque

Ces options sont affichées uniquement pour les utilisateurs suffisamment privilégiés. Si vous ne voyez pas ces options, vous n’avez pas les autorisations nécessaires pour activer l’accès aux données externes pour un metastore.

Accorder des privilèges de catalogue Unity principal

Les clients externes qui se connectent à Azure Databricks ont besoin d’une autorisation à partir d’un principal suffisamment privilégié.

Azure Databricks prend en charge OAuth et les jetons d’accès personnels (PAT) pour l’authentification. Consultez Autoriser l’accès aux ressources Azure Databricks.

Le responsable qui demande les identifiants temporaires doit avoir :

  • Privilège EXTERNAL USE SCHEMA sur le schéma conteneur ou son catalogue parent.

    Ce privilège doit toujours être accordé explicitement. Seul le propriétaire du catalogue parent peut l’accorder. Pour éviter l’exfiltration accidentelle, ALL PRIVILEGES n’inclut pas le privilège EXTERNAL USE SCHEMA et les propriétaires de schéma n’ont pas ce privilège par défaut.

  • Autorisation SELECT au niveau de la table, USE CATALOG au niveau de son catalogue parent et USE SCHEMA au niveau de son schéma parent.

  • Si vous créez des tables externes, le principal doit également avoir le CREATE TABLE privilège sur le schéma et les privilèges et CREATE EXTERNAL TABLE les EXTERNAL USE LOCATION privilèges sur l’emplacement externe cible.

    EXTERNAL USE LOCATION doit toujours être accordé explicitement. Seuls les utilisateurs disposant du MANAGE privilège sur l’emplacement externe peuvent l’accorder. Pour éviter l’exfiltration accidentelle, ALL PRIVILEGES n’inclut pas le EXTERNAL USE LOCATION privilège et les propriétaires d’emplacement n’ont pas ce privilège par défaut.

L’exemple de syntaxe suivant illustre l’octroi de EXTERNAL USE SCHEMA à un utilisateur :

GRANT EXTERNAL USE SCHEMA ON SCHEMA catalog_name.schema_name TO `user@company.com`

L’exemple de syntaxe suivant illustre l’octroi de EXTERNAL USE LOCATION à un utilisateur :

GRANT EXTERNAL USE LOCATION ON EXTERNAL LOCATION external_location_name TO `user@company.com`

En supposant que l’utilisateur dispose des autorisations nécessaires pour lire toutes les tables souhaitées dans le schéma, aucune autorisation supplémentaire n’est nécessaire. Si vous devez accorder des autorisations supplémentaires pour lire des tables, consultez Privilèges Unity Catalog et objets sécurisables.