Привилегии и защищаемые объекты в хранилище метаданных 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
для автоматически предоставляет или отклоняет привилегии для всех схем в каталоге. Аналогичным образом, привилегии, предоставляемые объекту схемы, наследуются всеми объектами в этой схеме. Этот шаблон применим ко всем защищаемым объектам.
Если запретить пользователю права доступа к таблице, пользователь не сможет просмотреть таблицу, попытаясь получить список всех таблиц в схеме. Если запретить пользователю права доступа к схеме, пользователь не сможет увидеть, что схема существует, попытаясь получить список всех схем в каталоге.
Типы привилегий
В следующей таблице показано, какие привилегии связаны с защищаемыми объектами.
Тип привилегий | АНОНИМНАЯ ФУНКЦИЯ | ЛЮБОЙ ФАЙЛ | КАТАЛОГ | СХЕМЫ | ФУНКЦИИ | ТАБЛИЦЕ | ВИД | |
---|---|---|---|---|---|---|---|---|
СОЗДАТЬ | Да | Да | ||||||
ИЗМЕНИТЬ | Да | Да | Да | Да | ||||
READ_METADATA | Да | Да | Да | Да | ||||
ВЫБЕРИТЕ | Да | Да | Да | Да | Да | Да | Да | |
ИСПОЛЬЗОВАНИЯ | Да | Да |
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
Непосредственно КОПИРОВАТЬ ФАЙЛЫ 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`;