Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Автомасштабирование Lakebase находится в бета-версии в следующих регионах: eastus2, westeurope, westus.
Автомасштабирование Lakebase — это последняя версия Lakebase с автомасштабированием вычислений, масштабированием до нуля, ветвлением и мгновенным восстановлением. Сравнение функций с Lakebase Provisioned см. в разделе выбора между версиями.
При создании проекта Lakebase создает несколько ролей Postgres в проекте:
- Роль Postgres для удостоверения владельца проекта Azure Databricks (например,
user@databricks.comкоторый владеет базой данных по умолчаниюdatabricks_postgres) - Административная
databricks_superuserроль
База databricks_postgres данных создается, чтобы подключиться и попробовать Lakebase сразу после создания проекта.
Также создаются несколько системно управляемых ролей. Это внутренние роли, используемые службами Azure Databricks для управления, мониторинга и операций с данными.
Замечание
Роли Postgres управляют доступом к базе данных (кто может запрашивать данные). Разрешения проекта (которые могут управлять инфраструктурой), см. в разделе "Разрешения проекта". Руководство по настройке обоих элементов см. в руководстве. Предоставление доступа к проекту и базе данных новому пользователю.
См. статью "Предварительно созданные роли " и "Системные роли".
Создание ролей Postgres
Lakebase поддерживает два типа ролей Postgres для доступа к базе данных:
-
Роли OAuth для идентификаций Azure Databricks: Создайте их с помощью
databricks_authрасширения и SQL. Позволяет удостоверениям Azure Databricks (пользователям, субъектам-службам и группам) подключаться с использованием токенов OAuth. - Собственные роли паролей Postgres: Создайте их с помощью пользовательского интерфейса Lakebase или SQL. Используйте любое допустимое имя роли с проверкой подлинности паролем.
Рекомендации по выбору типа используемой роли см. в обзоре проверки подлинности. Каждая из них предназначена для различных вариантов использования.
Создайте роль OAuth для идентификации Azure Databricks с использованием SQL
Чтобы разрешить удостоверениям Azure Databricks (пользователям, субъектам-службам или группам) подключаться с помощью токенов OAuth, необходимо создать роли Postgres с помощью databricks_auth расширения. Создание роли для группы позволяет всем членам группы проходить проверку подлинности с помощью роли группы, упрощая управление разрешениями.
Подробные инструкции по получению маркеров OAuth в потоках пользователь-компьютер и компьютер-компьютер см. в разделах Получение маркера OAuth в потоке пользователь-компьютер и Получение маркера OAuth в потоке компьютер-компьютер документации по аутентификации.
Необходимые условия:
- Для базы данных необходимы права
CREATEиCREATE ROLE. - Необходимо пройти проверку подлинности, используя учетную запись Azure Databricks с действительным маркером OAuth.
- Собственные сеансы Postgres, прошедшие проверку подлинности, не могут создавать роли OAuth
Чтобы создать роль OAuth, выполните приведенные действия.
Создайте расширение
databricks_auth. Каждая база данных Postgres должна иметь собственное расширение.CREATE EXTENSION IF NOT EXISTS databricks_auth;Используйте эту функцию
databricks_create_roleдля создания роли Postgres для идентичности Azure Databricks:SELECT databricks_create_role('identity_name', 'identity_type');Для пользователя Azure Databricks:
SELECT databricks_create_role('myuser@databricks.com', 'USER');Для учетной записи службы Azure Databricks:
SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');Для группы Azure Databricks:
SELECT databricks_create_role('My Group Name', 'GROUP');Имя группы учитывает регистр и должно точно соответствовать тому, как оно отображается в рабочей области Azure Databricks. При создании роли Postgres для группы любой прямой или косвенный член (пользователь или сервисный принципал) этой группы Databricks может выполнить аутентификацию в Postgres в качестве ролевой группы, используя индивидуальный токен OAuth. Это позволяет управлять разрешениями на уровне группы в Postgres, а не поддерживать разрешения для отдельных пользователей.
Предоставьте новой роли разрешения на базы данных.
Функция databricks_create_role() создает роль Postgres только с LOGIN разрешениями. После создания роли необходимо предоставить соответствующие привилегии и разрешения базы данных для определенных баз данных, схем или таблиц, к которым пользователь должен получить доступ. Узнайте, как управлять разрешениями
Проверка подлинности на основе групп
При создании роли Postgres для группы Azure Databricks можно включить проверку подлинности на основе групп. Это позволяет любому участнику группы Azure Databricks пройти проверку подлинности в Postgres с помощью роли группы, упрощая управление разрешениями.
Принцип работы.
- Создайте роль Postgres для группы Databricks с помощью
databricks_create_role('Group Name', 'GROUP'). - Предоставьте разрешения базы данных групповой роли в PostgreSQL. См. раздел "Управление разрешениями".
- Любой прямой или косвенный член (пользователь или субъект-служба) группы Databricks может подключаться к Postgres с помощью отдельного токена OAuth.
- При подключении член проходит проверку подлинности в роли группы и наследует все разрешения, предоставленные этой роли.
Поток проверки подлинности:
Когда член группы подключается, он указывает в качестве имени пользователя роль Postgres группы и свой токен OAuth в качестве пароля.
export PGPASSWORD='<OAuth token of a group member>'
export GROUP_ROLE_NAME='<pg-case-sensitive-group-role-name>'
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUP_ROLE_NAME
Важные вопросы:
- Проверка членства в группах: Членство в группах проверяется только во время проверки подлинности. Если член удаляется из группы Azure Databricks после установления подключения, подключение остается активным. Новые попытки подключения от удаленных членов отклоняются.
- Область рабочей области: Для проверки подлинности на основе групп поддерживаются только группы, назначенные той же рабочей области Azure Databricks, что и проект. Сведения о назначении групп рабочей области см. в статье "Управление группами".
-
Конфиденциальность регистра: Имя группы, используемое в
databricks_create_role(), должно соответствовать имени группы точно так же, как оно отображается в рабочей области Azure Databricks, включая регистр. - Управление разрешениями: Управление разрешениями на уровне группы в Postgres эффективнее, чем управление отдельными разрешениями пользователей. При предоставлении разрешений роли группы все текущие и будущие члены группы автоматически наследуют эти разрешения.
Замечание
Имена ролей не могут превышать 63 символов, и некоторые имена не допускаются. Дополнительные сведения: управление ролями
Создайте роль Postgres с собственным паролем
Вы можете создавать собственные роли паролей Postgres с помощью пользовательского интерфейса Lakebase или стандартных команд SQL.
Использование пользовательского интерфейса:
- В приложении Lakebase перейдите на страницу обзора ветви, а затем перейдите на вкладку " Роли и базы данных ветви".
- Нажмите кнопку "Добавить роль" и укажите имя роли (любое допустимое имя роли Postgres).
- Нажмите кнопку "Создать".
- Скопируйте созданный пароль и предоставьте его пользователю, который будет использовать эту роль.
Пользовательский интерфейс Lakebase автоматически создает безопасный пароль с 60-разрядной энтропией. Роли, созданные с помощью пользовательского интерфейса, автоматически предоставляют членство в databricks_superuser роли, которая предоставляет широкие привилегии базы данных.
Использование SQL:
Вы также можете создавать собственные роли паролей Postgres с помощью стандартных команд Postgres SQL:
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';
При создании ролей с помощью SQL пароль должен содержать не менее 12 символов с сочетанием строчных регистров, верхнего регистра, числа и символов. Определяемые пользователем пароли проверяются во время создания, чтобы обеспечить 60-разрядную энтропию.
Просмотр ролей Postgres
Пользовательский интерфейс
Чтобы просмотреть все роли Postgres в проекте, перейдите на вкладку " Роли и базы данных " ветви в приложении Lakebase. Все роли, созданные в ветви, за исключением системных ролей, перечислены, включая собственные роли Postgres с проверкой подлинности паролем.
PostgreSQL
Просмотрите все роли с \du помощью команды:
Вы можете просмотреть все роли Postgres, включая системные роли, с помощью \du метакоманд из любого клиента Postgres (например psql) или редактора SQL Lakebase:
\du
List of roles
Role name | Attributes
-----------------------------+------------------------------------------------------------
cloud_admin | Superuser, Create role, Create DB, Replication, Bypass RLS
my.user@databricks.com | Create role, Create DB, Bypass RLS
databricks_control_plane | Superuser
databricks_gateway |
databricks_monitor |
databricks_reader_12345 | Create role, Create DB, Replication, Bypass RLS
databricks_replicator | Replication
databricks_superuser | Create role, Create DB, Cannot login, Bypass RLS
databricks_writer_12345 | Create role, Create DB, Replication, Bypass RLS
При этом отображаются все роли и их атрибуты (Superuser, Create role, Create DB и т. д.).
Удаление роли Postgres
Вы можете удалить роли на основе удостоверений Databricks и собственные роли паролей Postgres.
Пользовательский интерфейс
Удаление роли — это постоянное действие, которое не может быть отменено. Невозможно удалить роль, которая владеет базой данных. Перед удалением роли, владеющей базой данных, необходимо удалить базу данных.
Чтобы удалить любую роль Postgres с помощью пользовательского интерфейса:
- Перейдите на вкладку Роли и базы данных вашей ветви в приложении Lakebase.
- Выберите "Удалить роль " в меню ролей и подтвердите удаление.
PostgreSQL
Вы можете удалить любую роль Postgres с помощью стандартных команд Postgres. Дополнительные сведения см. в документации postgreSQL по удалению ролей.
Удаление роли:
DROP ROLE role_name;
После удаления роли, основанной на удостоверениях Azure Databricks, это удостоверение больше не сможет аутентифицироваться в Postgres с помощью токенов OAuth до создания новой роли.
Предварительно созданные роли
После создания проекта Azure Databricks автоматически создает роли Postgres для администрирования проекта и начала работы.
| Role | Description | Унаследованные привилегии |
|---|---|---|
<project_owner_role> |
Удостоверение создателя проекта Azure Databricks (например, my.user@databricks.com). Эта роль имеет права на базу данных по умолчанию databricks_postgres и может войти в систему и администрировать проект. |
Член databricks_superuser |
databricks_superuser |
Внутренняя административная роль. Используется для настройки и управления доступом в проекте. Эта роль предоставляет широкие привилегии. | Наследует от pg_read_all_data, pg_write_all_dataи pg_monitor. |
Дополнительные сведения о конкретных возможностях и привилегиях этих ролей: предварительно созданные возможности ролей
Системные роли, созданные Azure Databricks
Azure Databricks создает следующие системные роли, необходимые для внутренних служб. Эти роли можно просмотреть, выполнив команду \du из psql или редактора SQL Lakebase.
| Role | Цель |
|---|---|
cloud_admin |
Роль суперпользователя, используемая для управления облачной инфраструктурой |
databricks_control_plane |
Роль суперпользователя, используемая внутренними компонентами Databricks для операций управления |
databricks_monitor |
Используется службами сбора внутренних метрик |
databricks_replicator |
Используется для операций репликации базы данных |
databricks_writer_<dbid> |
Роль для каждой базы данных, используемая для создания синхронизированных таблиц и управления ими |
databricks_reader_<dbid> |
Роль для каждой базы данных, используемая для чтения таблиц, зарегистрированных в каталоге Unity |
databricks_gateway |
Используется для внутренних соединений в услугах управления потоками данных |
Чтобы узнать, как работают роли, привилегии и членство в ролях в Postgres, используйте следующие ресурсы в документации Postgres: