Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Добавьте таблицы каталога Unity в качестве ресурсов Databricks Apps, чтобы приложение могло запрашивать и изменять данные, хранящиеся в каталоге Unity, с помощью управления данными и управления доступом. Таблицы каталога Unity предоставляют структурированное хранилище данных с точными разрешениями, поэтому ваше приложение может безопасно считывать и записывать данные без жесткого ввода учетных данных.
Требования к привилегиям
Чтобы получить доступ к таблице каталога Unity, субъект-служба приложения должна иметь привилегию USE CATALOG на родительский каталог, привилегию USE SCHEMA на родительскую схему, а также привилегию SELECT или MODIFY на таблицу. При добавлении ресурса таблицы Azure Databricks автоматически предоставляет все нужные привилегии служебному участнику приложения.
Для успешного предоставления этой привилегии одно из следующих условий должно выполняться для каждой привилегии:
-
Для
USE CATALOG: у всех пользователей учетной записи естьUSE CATALOGпривилегия на каталоге или у вас естьMANAGEпривилегия на каталоге. -
Для
USE SCHEMA: либо у всех пользователей учетной записи есть привилегияUSE SCHEMAна схему, либо у вас есть привилегияMANAGEна схему. -
Для
SELECTилиMODIFY: либо все пользователи учетной записи имеютSELECTилиMODIFYпривилегии на таблицу, либо у вас есть привилегияMANAGEна таблицу.
Смотрите справочник по привилегиям Unity Catalog.
Добавьте ресурс таблицы Unity Catalog
Прежде чем добавлять таблицу в качестве ресурса, просмотрите предварительные требования к ресурсу приложения.
- В разделе "Ресурсы приложения" при создании или изменении приложения нажмите кнопку "Добавить> ресурсов".
- Выберите таблицу каталога Unity из доступных таблиц в рабочей области. Таблица уже должна существовать в каталоге Unity.
- Выберите соответствующий уровень разрешений для приложения:
- Выберите: Предоставляет приложению разрешение на запрос и чтение данных из таблицы. Это подходит для приложений, которые должны считывать только данные.
-
Изменить: Предоставляет приложению разрешение на вставку, обновление и удаление данных в таблице. Это разрешение неявно включает в себя
SELECT, поэтому приложение также может считывать данные.
- (Необязательно) Укажите пользовательский ключ ресурса, который является ссылкой на таблицу в конфигурации приложения. Ключ по умолчанию —
table.
Замечание
MODIFY недоступно для всех типов таблиц. Например, представления не поддерживают привилегию MODIFY . Если таблица не поддерживает MODIFY, доступен только SELECT.
Переменные среды
При развертывании приложения с ресурсом таблицы каталога Unity Azure Databricks предоставляет полное трехуровневое имя таблицы с помощью переменных среды, на которые можно ссылаться с помощью поля valueFrom.
Пример конфигурации:
env:
- name: UC_TABLE_NAME
valueFrom: table # Use your custom resource key if different
Использование таблицы в приложении:
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"
)
Дополнительные сведения см. в разделе "Использование переменных среды для доступа к ресурсам".
Удалить ресурс таблицы каталога Unity
При удалении ресурса таблицы каталога Unity из приложения субъект-служба приложения теряет права SELECT, MODIFY, и ALL PRIVILEGES на таблицу. Azure Databricks также пытается отозвать разрешения иерархического каталога и схемы. Сама таблица остается неизменной и по-прежнему доступна для других пользователей и приложений с соответствующими разрешениями.
Рекомендации
При работе с ресурсами таблицы каталога Unity следует учитывать следующее:
- Предоставьте минимальные разрешения. Используйте
SELECT, если приложение не должно записывать данные в таблицу. - Объедините ресурсы таблицы с ресурсом хранилища SQL , если приложению требуется выполнить sql-запросы к таблице.
- Используйте отдельные ресурсы таблицы для разных таблиц, а не предоставляйте широкий доступ на уровне схемы, чтобы можно было применить принцип наименьших привилегий.
- Рекомендуется использовать тома каталога Unity для неструктурированных данных и таблицы каталога Unity для структурированных данных.