Привилегии и защищаемые объекты в хранилище метаданных 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_metastore
catalog или schema внутри него, предоставлениеREAD_METADATA
будет grantREAD_METADATA
для всех текущих и будущих tables и views в защищаемом объекте.READ FILES
Выполните запрос файлов напрямую с использованием учетных данных хранилища или внешнего расположения.
SELECT
Запросите table или представление, вызовите определяемую пользователем или анонимную функцию или select
ANY 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`;