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


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

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

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

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

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

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

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

Синтаксис

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

Parameters

  • ANY FILE

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

  • CATALOG catalog_name

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

  • { SCHEMA | DATABASE } schema_name

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

  • FUNCTION function_name

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

  • [ TABLE ] table_name

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

  • VIEW view_name

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

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

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

Если вы предоставите пользователю deny права на table, то он не сможет видеть table, совершая попытку list всех tables в schema. Если вы deny права пользователя на schema, пользователь не может увидеть, что schema существует, пытаясь list все схемы в catalog.

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

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

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

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

  • CREATE

    Создайте объекты в catalog или schema.

  • MODIFY

    COPY INTO, UPDATEDELETE, INSERTили MERGE INTOtable.

    Если securable_object является hive_metastore или schema внутри него, предоставление MODIFY будет grantMODIFY для всех текущих и будущих tables и views в защищаемом объекте.

  • READ_METADATA

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

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

  • READ FILES

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

  • SELECT

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

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

  • USAGE

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

  • WRITE FILES

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

Примеры

-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;