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

В этой статье объясняется, как управлять доступом к данным и другим объектам в каталоге Unity. Сведения о том, как эта модель отличается от управления доступом в хранилище метаданных Hive, см. в статье "Работа с каталогом Unity" и устаревшим хранилищем метаданных Hive.

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

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

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

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

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

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

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

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

Модель наследования

Защищаемые объекты в каталоге Unity являются иерархическими, а привилегии наследуются вниз. Объектом самого высокого уровня, от которого наследуются привилегии, является каталог. Это означает, что предоставление привилегии каталогу или схеме автоматически предоставляет привилегию всем текущим и будущим объектам в каталоге или схеме. Например, если предоставить пользователю привилегию SELECT в каталоге, этот пользователь сможет выбрать (прочитать) все таблицы и представления в этом каталоге. Привилегии, предоставляемые в хранилище метаданных каталога Unity, не наследуются.

Иерархия объектов каталога Unity

Владельцы объекта автоматически предоставляют все привилегии для этого объекта. Кроме того, владельцы объектов могут предоставлять права на сам объект и все его дочерние объекты. Это означает, что владельцы схемы не имеют автоматически всех привилегий для таблиц в схеме, но они могут предоставлять себе привилегии для таблиц в схеме.

Примечание.

Если вы создали хранилище метаданных каталога Unity во время общедоступной предварительной версии (до 25 августа 2022 г.), возможно, вы используете более раннюю модель привилегий, которая не поддерживает текущую модель наследования. Вы можете обновить модель привилегий до версии 1.0, чтобы получить наследование привилегий. См. раздел "Обновление до наследования привилегий".

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

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

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

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

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

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

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

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

SQL

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

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

Например, следующая команда показывает все гранты по схеме с именем по умолчанию в родительском каталоге с именем 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

Предоставление разрешений на объекты в хранилище метаданных каталога Unity

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

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

  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`;

Отмена разрешений на объекты в хранилище метаданных каталога Unity

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

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

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

SQL

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

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

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

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

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

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

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

  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 TO <principal>;
    

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