Перейти к основному содержимому

REVOKE

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

подсказка
  • Обычные пользователи могут отзывать только те свои привилегии, которые имеют ключевое слово WITH GRANT OPTION, у других пользователей и ролей. Информацию о WITH GRANT OPTION см. в разделе GRANT.
  • Только пользователи с ролью user_admin имеют привилегию отзывать привилегии у других пользователей.

Синтаксис

Отзыв привилегий

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

Система

REVOKE
{ CREATE RESOURCE GROUP | CREATE RESOURCE | CREATE EXTERNAL CATALOG | REPOSITORY | BLACKLIST | FILE | OPERATE }
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}

Группа ресурсов

REVOKE
{ ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE GROUP <resourcegroup_name> [, <resourcegroup_name>,...]ALL RESOURCE GROUPS}
FROM { ROLE | USER} {<role_name>|<user_identity>}

Ресурс

REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE <resource_name> [, <resource_name>,...]ALL RESOURCES}
FROM { ROLE | USER} {<role_name>|<user_identity>}

Пользователь

REVOKE IMPERSONATE ON USER <user_identity> FROM USER <user_identity>;

Глобальная UDF

REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { GLOBAL FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL GLOBAL FUNCTIONS }
FROM { ROLE | USER} {<role_name>|<user_identity>}

Внутренний catalog

REVOKE 
{ USAGE | CREATE DATABASE | ALL [PRIVILEGES]}
ON CATALOG default_catalog
FROM { ROLE | USER} {<role_name>|<user_identity>}

external catalog

REVOKE  
{ USAGE | DROP | ALL [PRIVILEGES] }
ON { CATALOG <catalog_name> [, <catalog_name>,...] | ALL CATALOGS}
FROM { ROLE | USER} {<role_name>|<user_identity>}

База данных

REVOKE 
{ ALTER | DROP | CREATE TABLE | CREATE VIEW | CREATE FUNCTION | CREATE MATERIALIZED VIEW | ALL [PRIVILEGES] }
ON {{ DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.

Таблица

REVOKE  
{ ALTER | DROP | SELECT | INSERT | EXPORT | UPDATE | DELETE | ALL [PRIVILEGES]}
ON { TABLE <table_name> [, < table_name >,...]
| ALL TABLES} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.

  • Вы также можете использовать db.tbl для представления таблицы.

    REVOKE <priv> ON TABLE db.tbl FROM {ROLE <role_name> | USER <user_identity>}

Представление

REVOKE  
{ ALTER | DROP | SELECT | ALL [PRIVILEGES]}
ON { VIEW <view_name> [, < view_name >,...]
ALL VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.

  • Вы также можете использовать db.view для представления представления.

    REVOKE <priv> ON VIEW db.view FROM {ROLE <role_name> | USER <user_identity>}

Материализованное представление

REVOKE
{ SELECT | ALTER | REFRESH | DROP | ALL [PRIVILEGES]}
ON { MATERIALIZED VIEW <mv_name> [, < mv_name >,...]
ALL MATERIALIZED VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL [DATABASES] }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.

  • Вы также можете использовать db.mv для представления материализованного представления.

    REVOKE <priv> ON MATERIALIZED VIEW db.mv FROM {ROLE <role_name> | USER <user_identity>}

Функция

REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
ALL FUNCTIONS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
  • Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.

  • Вы также можете использовать db.function для представления функции.

    REVOKE <priv> ON FUNCTION <db_name>.<function_name>(input_data_type) FROM {ROLE <role_name> | USER <user_identity>}

Том хранения

REVOKE
CREATE STORAGE VOLUME
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}

REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { STORAGE VOLUME < name > [, < name >,...]ALL STORAGE VOLUME}
FROM { ROLE | USER} {<role_name>|<user_identity>}

Отзыв ролей

REVOKE <role_name> [,<role_name>, ...] FROM ROLE <role_name>
REVOKE <role_name> [,<role_name>, ...] FROM USER <user_identity>

Параметры

ПараметрОписание
role_nameИмя роли.
user_identityИдентификатор пользователя, например, 'jack'@'192.%'.
resourcegroup_nameИмя группы ресурсов
resource_nameИмя ресурса.
function_nameИмя функции.
catalog_nameИмя external catalog.
database_nameИмя базы данных.
table_nameИмя таблицы.
view_nameИмя представления.
mv_nameИмя материализованного представления.

Примеры

Отзыв привилегий

Отозвать привилегию SELECT на таблице sr_member у пользователя jack:

REVOKE SELECT ON TABLE sr_member FROM USER 'jack'@'192.%'

Отозвать привилегию USAGE на ресурсе spark_resource у роли test_role:

REVOKE USAGE ON RESOURCE 'spark_resource' FROM ROLE 'test_role';

Отзыв ролей

Отозвать роль example_role у пользователя jack:

REVOKE example_role FROM 'jack'@'%';

Отозвать роль example_role у роли test_role:

REVOKE example_role FROM ROLE 'test_role';

Ссылки

GRANT