Delen via


Een Unity Catalog-tabelresource toevoegen aan een Databricks-app

Voeg Unity Catalog-tabellen toe als Databricks Apps-resources, zodat uw app gegevens kan opvragen en wijzigen die zijn opgeslagen in Unity Catalog met governance en toegangsbeheer. Unity Catalog-tabellen bieden gestructureerde gegevensopslag met verfijnde machtigingen, zodat uw app veilig gegevens kan lezen en schrijven zonder referenties vast te leggen.

Vereisten voor bevoegdheden

Voor toegang tot een Unity Catalog-tabel moet de service-principal van de app de USE CATALOG bevoegdheid hebben voor de bovenliggende catalogus, de USE SCHEMA bevoegdheid voor het bovenliggende schema en de SELECT of MODIFY bevoegdheid in de tabel. Wanneer u de tabelresource toevoegt, verleent Azure Databricks deze bevoegdheden automatisch aan de service-principal van de app.

Voor deze automatische toekenning om te slagen, moet een van de volgende voorwaarden gelden voor elke bevoegdheid:

  • Voor USE CATALOG: alle accountgebruikers hebben de USE CATALOG bevoegdheid voor de catalogus of u hebt de MANAGE bevoegdheid voor de catalogus.
  • Voor USE SCHEMA: alle accountgebruikers hebben de USE SCHEMA bevoegdheid voor het schema of u hebt de MANAGE bevoegdheid voor het schema.
  • Voor SELECT of MODIFY: alle accountgebruikers hebben de SELECT of MODIFY bevoegdheid voor de tabel, of u hebt de MANAGE bevoegdheid voor de tabel.

Zie Unity Catalog-bevoegdheden en beveiligbare objecten.

Een Unity Catalog-tabelresource toevoegen

Voordat u een tabel als resource toevoegt, controleert u de vereisten voor de app-resource.

  1. Wanneer u een app maakt of bewerkt, gaat u naar de stap Configureren .
  2. Klik in de sectie App-resources op + Resource toevoegen.
  3. Selecteer de UC-tabel als het resourcetype.
  4. Kies een Unity Catalog-tabel uit de beschikbare tabellen in uw werkruimte. De tabel moet al bestaan in Unity Catalog.
  5. Selecteer het juiste machtigingsniveau voor uw app:
    • Selecteer: Verleent de app toestemming om gegevens uit de tabel op te vragen en te lezen. Dit is geschikt voor apps die alleen gegevens hoeven te lezen.
    • Wijzigen: Verleent de app toestemming om gegevens in de tabel in te voegen, bij te werken en te verwijderen. Deze machtiging omvat SELECTimpliciet, zodat de app ook gegevens kan lezen.
  6. (Optioneel) Geef een aangepaste resourcesleutel op. Dit is de wijze waarop u naar de tabel in uw app-configuratie verwijst. De standaardsleutel is table.

Opmerking

MODIFY is niet beschikbaar voor alle tabeltypen. Weergaven bieden bijvoorbeeld geen ondersteuning voor de MODIFY bevoegdheid. Als de tabel geen ondersteuning biedt MODIFY, is alleen SELECT beschikbaar.

Omgevingsvariabelen

Wanneer u een app met een Unity Catalog-tabelresource implementeert, maakt Azure Databricks de volledige naam van de tabel op drie niveaus beschikbaar via omgevingsvariabelen waarnaar u kunt verwijzen met behulp van het valueFrom veld.

Voorbeeldconfiguratie:

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

De tabel in uw toepassing gebruiken:

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"
)

Zie Omgevingsvariabelen gebruiken voor toegang tot resources voor meer informatie.

Een Unity Catalog-tabelresource verwijderen

Wanneer u een Unity Catalog-tabelresource verwijdert uit een app, verliest de service-principal van de app de SELECT, MODIFY, en ALL PRIVILEGES rechten op de tabel. Azure Databricks probeert ook hiƫrarchische catalogus- en schemamachtigingen in te trekken. De tabel zelf blijft ongewijzigd en blijft beschikbaar voor andere gebruikers en toepassingen met de juiste machtigingen.

Best practices

Houd rekening met het volgende wanneer u met tabelbronnen van Unity Catalog werkt:

  • Minimale machtigingen verlenen. Gebruik SELECT tenzij uw app gegevens naar de tabel moet schrijven.
  • Combineer tabelresources met een SQL Warehouse-resource wanneer uw app SQL-query's moet uitvoeren op de tabel.
  • Gebruik afzonderlijke tabelbronnen voor verschillende tabellen in plaats van brede toegang op schemaniveau te verlenen, zodat u het principe van minimale bevoegdheden kunt toepassen.
  • Overweeg om Unity Catalog-volumes te gebruiken voor ongestructureerde gegevens en Unity Catalog-tabellen voor gestructureerde gegevens.