Partager via


Ajouter une ressource de table de catalogue Unity à une application Databricks

Ajoutez des tables de catalogue Unity en tant que ressources Databricks Apps afin que votre application puisse interroger et modifier les données stockées dans Unity Catalog avec la gouvernance et le contrôle d’accès. Les tables de catalogue Unity fournissent un stockage de données structuré avec des autorisations affinées, afin que votre application puisse lire et écrire des données en toute sécurité sans informations d’identification de codage en dur.

Exigences relatives aux privilèges

Pour accéder à un tableau Unity Catalog, le principal de service de l'application doit avoir le privilège USE CATALOG sur le catalogue parent, le privilège USE SCHEMA sur le schéma parent et le privilège SELECT ou MODIFY sur la table. Lorsque vous ajoutez la ressource de table, Azure Databricks accorde automatiquement ces privilèges au principal de service de l’application.

Pour que cet octroi automatique réussisse, l’un des éléments suivants doit être vrai pour chaque privilège :

  • Pour USE CATALOG: tous les utilisateurs de compte ont le USE CATALOG privilège sur le catalogue ou vous disposez du MANAGE privilège sur le catalogue.
  • Pour USE SCHEMA: tous les utilisateurs de compte ont le USE SCHEMA privilège sur le schéma ou vous disposez du MANAGE privilège sur le schéma.
  • Pour SELECT ou MODIFY : soit tous les utilisateurs du compte disposent des privilèges SELECT ou MODIFY sur la table, soit vous disposez du privilège MANAGE sur la table.

Consultez Privilèges Unity Catalog et objets sécurisables.

Ajouter une ressource de table de catalogue Unity

Avant d’ajouter une table en tant que ressource, passez en revue les prérequis des ressources d’application.

  1. Lorsque vous créez ou modifiez une application, accédez à l’étape Configurer .
  2. Dans la section Ressources de l’application , cliquez sur + Ajouter une ressource.
  3. Sélectionnez la table UC comme type de ressource.
  4. Choisissez une table de catalogue Unity dans les tables disponibles dans votre espace de travail. La table doit déjà exister dans le catalogue Unity.
  5. Sélectionnez le niveau d’autorisation approprié pour votre application :
    • Sélectionnez: Octroie à l’application l’autorisation d’interroger et de lire des données à partir de la table. Cela est approprié pour les applications qui doivent uniquement lire des données.
    • Modifier: Octroie à l’application l’autorisation d’insérer, de mettre à jour et de supprimer des données dans la table. Cette autorisation inclut SELECTimplicitement , afin que l’application puisse également lire des données.
  6. (Facultatif) Spécifiez une clé de ressource personnalisée, c’est-à-dire la façon dont vous référencez la table dans la configuration de votre application. La clé par défaut est table.

Note

MODIFY n’est pas disponible pour tous les types de tables. Par exemple, les vues ne prennent pas en charge le privilège MODIFY. Si la table ne prend pas en charge MODIFY, seul SELECT est disponible.

Variables d’environnement

Lorsque vous déployez une application avec une ressource de table Unity Catalog, Azure Databricks expose le nom complet de la table à trois niveaux via des variables d’environnement que vous pouvez référencer à l’aide du valueFrom champ.

Exemple de configuration :

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

Utilisation de la table dans votre application :

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Pour plus d’informations, consultez Utiliser des variables d’environnement pour accéder aux ressources.

Supprimer une ressource de table de catalogue Unity

Lorsque vous supprimez une ressource de table Unity Catalog d’une application, le principal de service de l’application perd les SELECT, MODIFY, et ALL PRIVILEGES accords sur la table. Azure Databricks tente également de révoquer des autorisations hiérarchiques de catalogue et de schéma. La table elle-même reste inchangée et continue d’être disponible pour d’autres utilisateurs et applications disposant d’autorisations appropriées.

Meilleures pratiques

Tenez compte des éléments suivants lorsque vous utilisez des ressources de table de catalogue Unity :

  • Accordez des autorisations minimales. Utilisez SELECT sauf si votre application doit écrire des données dans la table.
  • Combinez des ressources de table avec une ressource SQL Warehouse lorsque votre application doit exécuter des requêtes SQL sur la table.
  • Utilisez des ressources de table distinctes pour différentes tables plutôt que d’accorder un accès au niveau du schéma étendu, afin de pouvoir appliquer le principe de privilège minimum.
  • Envisagez d’utiliser des volumes de catalogue Unity pour les données non structurées et les tables De catalogue Unity pour les données structurées.