Управление привилегиями в Unity Catalog

На этой странице объясняется, как предоставлять, отзывать и проверять привилегии в защищаемых объектах каталога Unity и управлять владением объектами. Общие принципы модели разрешений, наследования привилегий и владения см. в Концепции модели разрешений в каталоге Unity.

Кто может управлять привилегиями?

Изначально пользователи не имеют доступа к данным в хранилище метаданных. Администраторы учетных записей Azure Databricks, администраторы рабочих областей и администраторы хранилища метаданных имеют привилегии по умолчанию для управления каталогом Unity. Смотрите раздел "Права администратора в Unity Catalog".

Все защищаемые объекты в каталоге Unity имеют владельца. Владельцы объектов имеют все привилегии для этого объекта, включая возможность предоставления привилегий другим субъектам. Владельцы могут предоставить другим пользователям привилегии MANAGE для объекта, что позволяет пользователям управлять привилегиями объекта. См. раздел "Управление владением объектами".

Привилегии можно предоставить любым из следующих способов:

  • Владелец объекта.
  • Владелец каталога или схемы, содержащей объект.
  • Пользователь с привилегиями MANAGE объекта.
  • Администратор хранилища метаданных.

Администраторы учетных записей также могут предоставлять привилегии непосредственно в хранилище метаданных.

Привилегии каталога рабочей области

Если ваша рабочая область была включена для каталога Unity автоматически, рабочая область присоединена к хранилищу метаданных по умолчанию и каталог рабочей области создается для рабочей области в хранилище метаданных. Администраторы рабочей области являются владельцами каталога рабочих областей по умолчанию. Владельцы могут управлять привилегиями каталогом рабочих областей и всеми дочерними объектами.

Все пользователи рабочей области получают привилегии USE CATALOG в каталоге рабочих областей. Пользователи рабочей области также получают привилегии USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION, и CREATE MATERIALIZED VIEW на схему default в каталоге.

Дополнительные сведения см. в статье "Начало работы с каталогом Unity".

Отображение, предоставление и отмена привилегий

Вы можете управлять привилегиями для объектов хранилища метаданных с помощью команд SQL, интерфейса командной строки Databricks, поставщика Databricks Terraform или обозревателя каталогов.

В следующих командах SQL замените следующие значения заполнителей:

  • <privilege-type> — это тип привилегий каталога Unity. См. Типы привилегий.
  • <securable-type>: тип защищаемого объекта, например, CATALOG или TABLE. См. раздел "Защищаемые объекты"
  • <securable-name>: имя защищаемого объекта. Если защищаемый тип имеет METASTOREзначение, не укажите защищаемое имя. Предполагается, что это хранилище метаданных прикреплено к рабочей области.
  • <principal> — это пользователь, служебный субъект (представленный значением applicationId) или группа. Необходимо заключать пользователей, служебных принципалов и имена групп, которые включают специальные символы, в обратные кавычки (` `). См. Принципал.

Отображение грантов для объекта

Примечание.

В настоящее время пользователи с правами MANAGE для объекта не могут просматривать все разрешения для этого объекта в INFORMATION_SCHEMA. Вместо этого INFORMATION_SCHEMA показывает только свои собственные гранты на объект. Это поведение будет исправлено в будущем.

Пользователи с привилегиями MANAGE могут просматривать все гранты объекта с помощью SQL-команд или проводника каталога. См. раздел Управление привилегиями вкаталога Unity.

Необходимые разрешения:

  • Администраторы хранилища метаданных, пользователи с привилегией MANAGE на объект, владельцы объекта, каталога или схемы, содержащей объект, могут видеть все гранты на объекте.
  • Если у вас нет указанных выше разрешений, вы можете просматривать только собственные доступы на объект.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. Выберите объект, например каталог, схему, таблицу или представление.
  3. Перейдите на вкладку "Разрешения".

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке. Вы можете отобразить гранты для конкретного субъекта или показать все гранты для защищаемого объекта.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

Например, следующая команда показывает все гранты на схему с именем default в родительском каталоге с именем main:

  SHOW GRANTS ON SCHEMA main.default;

Эта команда возвращает следующее:

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Отобразить мои гранты на объекте

Необходимые разрешения: Вы всегда можете просматривать собственные разрешения для объекта.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. Выберите объект, например каталог, схему, таблицу или представление.
  3. Перейдите на вкладку "Разрешения". Если вы не являетесь владельцем объекта или администратором хранилища метаданных, вы можете просматривать только собственные гранты для объекта.

SQL

Выполните следующую команду SQL в блокноте или редакторе SQL-запросов, чтобы отобразить ваши права на объект.

  SHOW GRANTS `<user>@<domain-name>` ON  <securable-type> <securable-name>

Предоставление разрешений для объекта

требуется разрешения: администратор хранилища метаданных, права MANAGE для объекта, владельца объекта или владельца каталога или схемы, содержащей объект.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. Выберите объект, например каталог, схему, таблицу или представление.
  3. Перейдите на вкладку "Разрешения".
  4. Нажмите «Предоставить».
  5. Введите адрес электронной почты пользователя или имя группы.
  6. Выберите разрешения, которые необходимо предоставить.
  7. Щелкните OK.

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

Например, следующая команда предоставляет группе с именем finance-team доступ к созданию таблиц в схеме с именем по умолчанию с родительским каталогом с именем main:

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

Обратите внимание, что зарегистрированные модели являются типом функции. Чтобы предоставить привилегии модели, необходимо использовать GRANT ON FUNCTION. Например, чтобы предоставить группе ml-team-acmeEXECUTE привилегии для модели prod.ml_team.iris_model, вы будете использовать:

  GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;

Отмена разрешений для объекта

требуется разрешения: администратор хранилища метаданных, права MANAGE для объекта, владельца объекта или владельца каталога или схемы, содержащей объект.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. Выберите объект, например каталог, схему, таблицу или представление.
  3. Перейдите на вкладку "Разрешения".
  4. Выберите разрешение, которое было предоставлено пользователю, субъекту-службе или группе.
  5. Нажмите Отменить.
  6. Для подтверждения нажмите Отменить.

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке.

  REVOKE <privilege-type> ON <securable-type> <securable-name> FROM <principal>

Например, следующая команда отменяет доступ группы с именем finance-team для создания таблиц в схеме по умолчанию с родительским каталогом с именем main:

  REVOKE CREATE TABLE ON SCHEMA main.default FROM `finance-team`;

Оператор REVOKE успешно завершается, даже если указанные привилегии изначально не были предоставлены. Это обеспечивает отсутствие привилегий, независимо от их предыдущего состояния.

Отображение грантов в хранилище метаданных

Необходимые разрешения: администратор хранилища метаданных или администратор учетной записи. Вы также можете просмотреть собственные гранты в хранилище метаданных.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. В верхней части области каталога щелкните значок шестеренки и выберите хранилище метаданных.
  3. Выберите вкладку Разрешения .

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке. Вы можете показать гранты для конкретного субъекта или показать все гранты в хранилище метаданных.

  SHOW GRANTS [principal] ON METASTORE

Предоставление разрешений в хранилище метаданных

Необходимые разрешения: администратор хранилища метаданных или администратор учетной записи.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. В верхней части области каталога щелкните значок шестеренки и выберите хранилище метаданных.
  3. На вкладке "Разрешения" нажмите кнопку "Предоставить".
  4. Введите адрес электронной почты пользователя или имя группы.
  5. Выберите разрешения, которые необходимо предоставить.
  6. Щелкните OK.

SQL

  1. Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке.

    GRANT <privilege-type> ON METASTORE TO <principal>;
    

    При предоставлении привилегий в хранилище метаданных не включайте имя хранилища метаданных, так как предполагается, что хранилище метаданных, присоединенное к рабочей области.

Отмена разрешений в хранилище метаданных

Необходимые разрешения: администратор хранилища метаданных или администратор учетной записи.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.
  2. В верхней части области каталога щелкните значок шестеренки и выберите хранилище метаданных.
  3. На вкладке "Разрешения" выберите пользователя или группу и нажмите кнопку "Отозвать".
  4. Для подтверждения нажмите Отменить.

SQL

  1. Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке.

    REVOKE <privilege-type> ON METASTORE FROM <principal>;
    

    При отмене привилегий в хранилище метаданных не включайте имя хранилища метаданных, так как предполагается, что хранилище метаданных, присоединенное к рабочей области.

Управление владением объектами

Просмотр владельца объекта

Обозреватель каталога или инструкции SQL можно использовать для просмотра владельца объекта.

Необходимые разрешения: любой пользователь с BROWSE привилегиями объекта или родителя объекта может просмотреть владельца объекта.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.

  2. Выберите объект, например каталог, схему, таблицу, представление, том, внешнее расположение или учетные данные хранения.

    Способ перехода к объекту зависит от его характеристик. Каталоги, схемы и содержимое схем (например, таблицы и тома) можно выбрать в левой области каталога. Другие объекты, такие как внешние расположения или общие ресурсы OpenSharing, можно найти, щёлкнув значок шестерёнки над панелью "Каталог" и выбрав в меню категорию объекта.

    Для большинства объектов владелец отображается на вкладке "Обзор" на странице сведений об объекте. Для некоторых объектов, таких как внешние расположения, он отображается в верхней части страницы сведений об объекте.

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке. Замените значения по умолчанию:

  • <securable-type>: тип защищаемого объекта, например CATALOG или TABLE.
  • <catalog>: родительский каталог, если вы просматриваете схему или содержимое схемы.
  • <schema>: родительская схема, если вы просматриваете содержимое схемы, например таблицу или представление.
  • <securable-name>: имя защищаемого объекта.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

Передача владения

Для передачи владельца объекта можно использовать обозреватель каталога или инструкции SQL.

необходимые разрешения: Вы можете передать владение объектом, если вы являетесь текущим владельцем, администратором хранилища метаданных, владельцем каталога (каталог для схемы, схема для таблицы) или пользователем с правами MANAGE на объект. Объекты общего ресурса OpenSharing являются исключением: только администратор хранилища метаданных может передать право владения общим ресурсом.

Чтобы предотвратить эскалацию привилегий, только администратор хранилища метаданных может передать владение представлением, функцией или моделью любому пользователю, субъекту-службе или группе в учетной записи. Текущие владельцы и пользователи с привилегиями MANAGE могут передавать права владения только на своё имя пользователя или в группу, членами которой они являются.

Подсказка

Передача права владения представлением или представлением метрик в группу обеспечивает совместное редактирование. Если группа владеет представлением или метрикой, все члены группы могут изменять его настройки, в то время как доступ к данным остается ограниченным тем, на что у группы есть разрешение на просмотр. Подробные инструкции см. в разделе "Включение совместного редактирования".

Примечание.

Материализованные представления и таблицы потоковой передачи, созданные с помощью Databricks SQL, могут передаваться в собственность. Дополнительные сведения см. в разделе "Изменение владельца материализованного представления " и изменение владельца потоковой таблицы.

Право собственности на материализованные представления и потоковые таблицы, созданные с помощью конвейеров Lakeflow, нельзя передать напрямую. Вместо этого измените пользователя, под именем которого выполняется конвейер, управляющий наборами данных. После следующего обновления владелец будет изменён на пользователя, от имени которого выполняется запуск. См. раздел "Задание пользователя запуска от имени".

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог.

  2. Выберите объект, например каталог, схему, таблицу, представление, внешнее расположение или учетные данные хранения.

    Способ перехода к объекту зависит от его характеристик. Каталоги, схемы и содержимое схем (например, таблицы и тома) можно выбрать в левой области каталога. Другие объекты, такие как внешние расположения или общие ресурсы OpenSharing, можно найти, щёлкнув значок шестерёнки над панелью "Каталог" и выбрав в меню категорию объекта.

    Для большинства объектов владелец отображается на вкладке "Обзор" на странице сведений об объекте. Для некоторых объектов, таких как внешние расположения, он отображается в верхней части страницы сведений об объекте.

  3. Щелкните значок редактирования рядом с владельцем.

  4. Найдите и выберите группу, пользователя или субъекта-службу.

  5. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду SQL в редакторе SQL-запросов или записной книжке. Замените значения по умолчанию:

  • <securable-type>: тип защищаемого объекта, например, CATALOG или TABLE. METASTORE не поддерживается в качестве защищаемого объекта в этой команде.
  • <securable-name>: имя защищаемого объекта. Если вы изменяете схему или содержимое схемы, необходимо использовать полное трехуровневое пространство имен (catalog.schema.object), если только вы еще не указали родительский каталог и/или схему.
  • <principal> — это пользователь, служебный субъект (представленный значением applicationId) или группа. Необходимо заключать пользователей, служебных принципалов и имена групп, которые включают специальные символы, в обратные кавычки (` `). См. Принципал.
ALTER <securable-type> <securable-name> OWNER TO <principal>;

Например, чтобы передать право собственности на таблицу orders группе accounting:

ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;