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 :
- Dans un Databricks Workspace attaché au métastore, cliquez
sur **Catalogue**.
- Cliquez sur
l'icône en forme d'engrenage en haut du volet **Catalogue** et sélectionnez **Metastore**.
- Sous l' tab Détails , activez l' accès aux données externes .
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 SCHEMAsur 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 PRIVILEGESn'inclut pas le privilègeEXTERNAL USE SCHEMA, et les propriétaires de schémas n'ont pas ce privilège par default. -
SELECTl'autorisation sur la table,USE CATALOGsur son catalogue parent etUSE SCHEMAsur son schéma parent. -
Lors de la création de tables externes, le mandant doit également avoir le privilège
CREATE TABLEsur le schéma, ainsi que les privilègesCREATE EXTERNAL TABLEetEXTERNAL USE LOCATIONsur l'emplacement externe cible.EXTERNAL USE LOCATIONdoit toujours être accordé explicitement. Seuls les utilisateurs disposant du privilègeMANAGEsur l'emplacement externe peuvent l'accorder. Pour éviter l'exfiltration accidentelle,ALL PRIVILEGESn'inclut pas le privilègeEXTERNAL 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 :
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 :
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
- Pour ajouter un accès aux données externes à vos vues matérialisées et tables de streaming, voir Activer l'accès aux données externes aux tables de streaming et vues matérialisées (version préliminaire publique).