Aller au contenu principal

Activer l'accès aux données externes pour Unity Catalog

Databricks fournit un accès aux tables Unity Catalog en utilisant l’API REST Unity et le catalogue REST Apache Iceberg.

Un administrateur du métastore doit activer l'accès externe aux données pour chaque métastore auquel vous devez accéder de l'extérieur. L'utilisateur ou le Service Principal qui configure la connexion doit disposer du privilège EXTERNAL USE SCHEMA pour chaque schéma où il/elle doit effectuer les opérations prises en charge : la lecture de tables gérées ou la création, la lecture et l'écriture dans des tables externes.

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

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

Pour permettre aux moteurs externes d'accéder aux données d'un métastore, un administrateur de métastore doit activer l'accès aux données externes pour le métastore. Cette option est désactivée par default afin d'éviter tout accès externe non autorisé.

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

  1. Dans un Databricks Workspace attaché au métastore, cliquez Icône de données. sur **Catalogue**.
  2. Cliquez sur Icône d'engrenage. l'icône en forme d'engrenage en haut du volet **Catalogue** et sélectionnez **Metastore**.
  3. Sous l' tab Détails , activez l' accès aux données externes .
remarque

Ces options sont affichées uniquement pour les utilisateurs suffisamment privilégiés. Si ces options ne s'affichent pas, vous n'êtes pas autorisé à activer l'accès aux données externes pour un metastore.

Accorder des privilèges Unity Catalog à un principal

Les clients externes se connectant à Databricks ont besoin d'une autorisation d'un principal suffisamment privilégié.

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

Le principal qui demande l'identifiant temporaire doit avoir :

  • Le 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'octroyer. Pour éviter toute exfiltration accidentelle, ALL PRIVILEGES n'inclut pas le privilège EXTERNAL USE SCHEMA, et les propriétaires de schémas n'ont pas ce privilège par default.

  • SELECT l'autorisation sur la table, USE CATALOG sur son catalogue parent et USE SCHEMA sur son schéma parent.

  • Lors de la création de tables externes, le mandant doit également avoir le privilège CREATE TABLE sur le schéma, ainsi que les privilèges CREATE EXTERNAL TABLE et EXTERNAL USE LOCATION sur l'emplacement externe cible.

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

La syntaxe d'exemple suivante démontre l'octroi de EXTERNAL USE SCHEMA à un utilisateur :

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

La syntaxe d'exemple suivante démontre l'octroi de EXTERNAL USE LOCATION à un utilisateur :

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

En supposant que l'utilisateur dispose des autorisations de lecture pour 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 les tables, consultez la référence des privilèges Unity Catalog.

Étapes suivantes