Поделиться через


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

Область применения:флажок Databricks SQL флажок Databricks Runtime

Привилегия — это право, предоставленное субъекту для работы с защищаемым объектом в хранилище метаданных.

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

Защищаемые объекты в хранилище метаданных Hive

Защищаемый объект — это объект, определенный в хранилище метаданных, в отношении которого субъекту могут быть предоставлены привилегии.

Для управления привилегиями для любого объекта необходимо быть его владельцем или администратором.

Синтаксис

  securable_object
    { ANY FILE |
      CATALOG [ catalog_name ] |
      { SCHEMA | DATABASE } schema_name |
      FUNCTION function_name |
      [ TABLE ] table_name |
      VIEW view_name
      }

Параметры

  • ANY FILE

    Управляет доступом к базовой файловой системе.

  • CATALOG catalog_name

    Управляет доступом ко всему каталогу данных.

  • { SCHEMA | DATABASE } schema_name

    Управляет доступом к схеме.

  • FUNCTION function_name

    Управляет доступом к именованной функции.

  • [ TABLE ] table_name

    Управляет доступом к управляемой или внешней таблице.

  • VIEW view_name

    Управляет доступом к представлениям SQL.

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

Защищаемые объекты в хранилище метаданных Hive являются иерархическими и привилегиями наследуются вниз. Это означает, что предоставление или запрет привилегии на CATALOG автоматически предоставляет или запрещает привилегию всем схемам в каталоге. Аналогичным образом привилегии, предоставленные объекту схемы, наследуются всеми объектами в этой схеме. Этот принцип соблюдается для всех защищаемых объектов.

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

Типы привилегий

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

Тип привилегии ANONYMOUS FUNCTION ANY FILE CATALOG SCHEMA FUNCTION TABLE ВИД
CREATE Да Да
MODIFY Да Да Да Да
READ_METADATA Да Да Да Да
SELECT Да Да Да Да Да Да Да
ИСПОЛЬЗОВАНИЕ Да Да
  • ALL PRIVILEGES

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

  • CREATE

    Создайте объекты в каталоге или схеме.

  • MODIFY

    COPY INTO, UPDATEDELETE, INSERTили MERGE INTO из таблицы.

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

  • READ_METADATA

    Обнаружение защищаемого объекта в окне SHOW и опрос объекта в DESCRIBE

    Если защищаемый объект является каталогом hive_metastore или схемой внутри него, предоставление READ_METADATA предоставит READ_METADATA для всех текущих и будущих таблиц и представлений в защищаемом объекте.

  • READ FILES

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

  • SELECT

    Запросите таблицу или представление, вызовите определяемую пользователем или анонимную функцию или выберите ANY FILE. Пользователь должен иметь SELECT в таблице, представлении или функции, а также USAGE в схеме и каталоге объекта.

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

  • USAGE

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

  • WRITE FILES

    Файлы COPY INTO, управляемые учетными данными хранилища или внешним расположением .

Примеры

-- Grant a privilege to the user [email protected]
> GRANT SELECT ON TABLE t TO `[email protected]`;

-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `[email protected]`;