Заявление GRANT
- Предоставляет привилегии учетным записям пользователей ClickHouse или ролям.
- Присваивает роли учетным записям пользователей или другим ролям.
Чтобы отзывить привилегии, используйте оператор REVOKE. Также вы можете перечислить предоставленные привилегии с помощью оператора SHOW GRANTS.
Синтаксис предоставления привилегий
privilege— Тип привилегии.role— Роль пользователя ClickHouse.user— Учетная запись пользователя ClickHouse.
Клауза WITH GRANT OPTION предоставляет user или role разрешение на выполнение запроса GRANT. Пользователи могут предоставлять привилегии того же объема, что и у них, или меньшего.
Клауза WITH REPLACE OPTION заменяет старые привилегии новыми для user или role; если она не указана, привилегии добавляются.
Синтаксис назначения роли
role— Роль пользователя ClickHouse.user— Учетная запись пользователя ClickHouse.
Клауза WITH ADMIN OPTION предоставляет привилегию ADMIN OPTION user или role.
Клауза WITH REPLACE OPTION заменяет старые роли новыми для user или role; если она не указана, роли добавляются.
Синтаксис текущих привилегий
privilege— Тип привилегии.role— Роль пользователя ClickHouse.user— Учетная запись пользователя ClickHouse.
Используя оператор CURRENT GRANTS, вы можете предоставить все указанные привилегии данному пользователю или роли. Если ни одна привилегия не была указана, то данный пользователь или роль получат все доступные привилегии для CURRENT_USER.
Использование
Чтобы использовать GRANT, ваша учетная запись должна иметь привилегию GRANT OPTION. Вы можете предоставлять привилегии только в пределах объема ваших учетных привилегий.
Например, администратор предоставил привилегии учетной записи john с помощью запроса:
Это означает, что у john есть разрешение на выполнение:
SELECT x,y FROM db.table.SELECT x FROM db.table.SELECT y FROM db.table.
john не может выполнить SELECT z FROM db.table. Запрос SELECT * FROM db.table также недоступен. Обрабатывая этот запрос, ClickHouse не возвращает никаких данных, даже x и y. Единственное исключение — если в таблице содержатся только колонки x и y. В этом случае ClickHouse возвращает все данные.
Кроме того, у john есть привилегия GRANT OPTION, так что он может предоставить другим пользователям привилегии того же или меньшего объема.
Доступ к базе данных system всегда разрешен (так как эта база данных используется для обработки запросов).
Хотя есть много системных таблиц, к которым новые пользователи могут получить доступ по умолчанию, они могут не иметь доступа ко всем системным таблицам по умолчанию без грантов.
Кроме того, доступ к определенным системным таблицам, таким как system.zookeeper, ограничен для облачных пользователей по соображениям безопасности.
Вы можете предоставить несколько привилегий нескольким учетным записям в одном запросе. Запрос GRANT SELECT, INSERT ON *.* TO john, robin позволяет учетным записям john и robin выполнять запросы INSERT и SELECT на всех таблицах во всех базах данных на сервере.
Гранты с подстановочными знаками
Указывая привилегии, вы можете использовать звездочку (*) вместо имени таблицы или базы данных. Например, запрос GRANT SELECT ON db.* TO john позволяет john выполнять запрос SELECT на всех таблицах в базе данных db.
Также вы можете опустить имя базы данных. В этом случае привилегии предоставляются для текущей базы данных.
Например, GRANT SELECT ON * TO john предоставляет привилегию на все таблицы в текущей базе данных, GRANT SELECT ON mytable TO john предоставляет привилегию на таблицу mytable в текущей базе данных.
Функция, описанная ниже, доступна, начиная с версии 24.10 ClickHouse.
Вы также можете поставить звездочки в конце имени таблицы или базы данных. Эта функция позволяет предоставлять привилегии на абстрактный префикс пути таблицы.
Пример: GRANT SELECT ON db.my_tables* TO john. Этот запрос позволяет john выполнять запрос SELECT на всех таблицах базы данных db с префиксом my_tables*.
Больше примеров:
GRANT SELECT ON db.my_tables* TO john
GRANT SELECT ON db*.* TO john
Все вновь созданные таблицы в предоставленных путях автоматически унаследуют все гранты от своих родителей.
Например, если вы выполните запрос GRANT SELECT ON db.* TO john, а затем создадите новую таблицу db.new_table, пользователь john сможет выполнить запрос SELECT * FROM db.new_table.
Вы можете указывать звездочку только для префиксов:
Привилегии
Привилегия — это разрешение, предоставляемое пользователю на выполнение конкретных типов запросов.
Привилегии имеют иерархическую структуру, и набор разрешенных запросов зависит от объема привилегии.
Иерархия привилегий в ClickHouse показана ниже:
ALLУПРАВЛЕНИЕ ДОСТУПОМALLOW SQL SECURITY NONEALTER QUOTAALTER ROLEALTER ROW POLICYALTER SETTINGS PROFILEALTER USERCREATE QUOTACREATE ROLECREATE ROW POLICYCREATE SETTINGS PROFILECREATE USERDROP QUOTADROP ROLEDROP ROW POLICYDROP SETTINGS PROFILEDROP USERROLE ADMINSHOW ACCESSSHOW QUOTASSHOW ROLESSHOW ROW POLICIESSHOW SETTINGS PROFILESSHOW USERS
ALTERALTER DATABASEALTER DATABASE SETTINGS
ALTER TABLEALTER COLUMNALTER ADD COLUMNALTER CLEAR COLUMNALTER COMMENT COLUMNALTER DROP COLUMNALTER MATERIALIZE COLUMNALTER MODIFY COLUMNALTER RENAME COLUMN
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER DELETEALTER FETCH PARTITIONALTER FREEZE PARTITIONALTER INDEXALTER ADD INDEXALTER CLEAR INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER ORDER BYALTER SAMPLE BY
ALTER MATERIALIZE TTLALTER MODIFY COMMENTALTER MOVE PARTITIONALTER PROJECTIONALTER SETTINGSALTER STATISTICSALTER ADD STATISTICSALTER DROP STATISTICSALTER MATERIALIZE STATISTICSALTER MODIFY STATISTICS
ALTER TTLALTER UPDATE
ALTER VIEWALTER VIEW MODIFY QUERYALTER VIEW REFRESHALTER VIEW MODIFY SQL SECURITY
BACKUPCLUSTERCREATECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE DATABASECREATE DICTIONARYCREATE FUNCTIONCREATE RESOURCECREATE TABLECREATE VIEWCREATE WORKLOAD
dictGetdisplaySecretsInShowAndSelectDROPDROP DATABASEDROP DICTIONARYDROP FUNCTIONDROP RESOURCEDROP TABLEDROP VIEWDROP WORKLOAD
INSERTINTROSPECTIONaddressToLineaddressToLineWithInlinesaddressToSymboldemangle
KILL QUERYKILL TRANSACTIONMOVE PARTITION BETWEEN SHARDSADMIN УПРАВЛЕНИЕ НАЗВАННЫМИ СОБРАНИЯМИALTER NAMED COLLECTIONCREATE NAMED COLLECTIONDROP NAMED COLLECTIONNAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS
OPTIMIZESELECTSET DEFINERSHOWSHOW COLUMNSSHOW DATABASESSHOW DICTIONARIESSHOW TABLES
SHOW FILESYSTEM CACHESSOURCEAZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
SYSTEMSYSTEM CLEANUPSYSTEM DROP CACHESYSTEM DROP COMPILED EXPRESSION CACHESYSTEM DROP CONNECTIONS CACHESYSTEM DROP DISTRIBUTED CACHESYSTEM DROP DNS CACHESYSTEM DROP FILESYSTEM CACHESYSTEM DROP FORMAT SCHEMA CACHESYSTEM DROP MARK CACHESYSTEM DROP MMAP CACHESYSTEM DROP PAGE CACHESYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP QUERY CACHESYSTEM DROP S3 CLIENT CACHESYSTEM DROP SCHEMA CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP REPLICASYSTEM FAILPOINTSYSTEM FETCHESSYSTEM FLUSHSYSTEM FLUSH ASYNC INSERT QUEUESYSTEM FLUSH LOGS
SYSTEM JEMALLOCSYSTEM KILL QUERYSYSTEM KILL TRANSACTIONSYSTEM LISTENSYSTEM LOAD PRIMARY KEYSYSTEM MERGESSYSTEM MOVESSYSTEM PULLING REPLICATION LOGSYSTEM REDUCE BLOCKING PARTSSYSTEM REPLICATION QUEUESSYSTEM REPLICA READINESSSYSTEM RESTART DISKSYSTEM RESTART REPLICASYSTEM RESTORE REPLICASYSTEM RELOADSYSTEM RELOAD ASYNCHRONOUS METРИКИSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIESSYSTEM RELOAD FUNCTIONSYSTEM RELOAD MODELSYSTEM RELOAD USERS
SYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM SHUTDOWNSYSTEM SYNC DATABASE REPLICASYSTEM SYNC FILE CACHESYSTEM SYNC FILESYSTEM CACHESYSTEM SYNC REPLICASYSTEM SYNC TRANSACTION LOGSYSTEM THREAD FUZZERSYSTEM TTL MERGESSYSTEM UNFREEZESYSTEM UNLOAD PRIMARY KEYSYSTEM VIEWSSYSTEM VIRTUAL PARTS UPDATESYSTEM WAIT LOADING PARTS
ДВИЖОК ТАБЛИЦTRUNCATEUNDROP TABLE
NONE
Примеры того, как эта иерархия обрабатывается:
- Привилегия
ALTERвключает все другие привилегииALTER*. ALTER CONSTRAINTвключает привилегииALTER ADD CONSTRAINTиALTER DROP CONSTRAINT.
Привилегии применяются на разных уровнях. Знание уровня предполагает синтаксис, доступный для привилегии.
Уровни (снизу вверх):
COLUMN— Привилегия может быть предоставлена для колонки, таблицы, базы данных или глобально.TABLE— Привилегия может быть предоставлена для таблицы, базы данных или глобально.VIEW— Привилегия может быть предоставлена для представления, базы данных или глобально.DICTIONARY— Привилегия может быть предоставлена для словаря, базы данных или глобально.DATABASE— Привилегия может быть предоставлена для базы данных или глобально.GLOBAL— Привилегия может быть предоставлена только глобально.GROUP— Группирует привилегии разных уровней. Когда привилегия уровняGROUPпредоставляется, только те привилегии из группы предоставляются, которые соответствуют используемому синтаксису.
Примеры допустимого синтаксиса:
GRANT SELECT(x) ON db.table TO userGRANT SELECT ON db.* TO user
Примеры недопустимого синтаксиса:
GRANT CREATE USER(x) ON db.table TO userGRANT CREATE USER ON db.* TO user
Специальная привилегия ALL предоставляет все привилегии учетной записи пользователя или роли.
По умолчанию учетная запись пользователя или роль не имеет привилегий.
Если пользователь или роль не имеют привилегий, это отображается как привилегия NONE.
Некоторые запросы по своей реализации требуют установленные привилегии. Например, для выполнения запроса RENAME вам нужны следующие привилегии: SELECT, CREATE TABLE, INSERT и DROP TABLE.
SELECT
Позволяет выполнять запросы SELECT.
Уровень привилегии: COLUMN.
Описание
Пользователь, обладающий этой привилегией, может выполнять запросы SELECT по указанному списку колонок в заданной таблице и базе данных. Если пользователь включает другие колонки, тогда указанный запрос не возвращает данные.
Рассмотрим следующую привилегию:
Эта привилегия позволяет john выполнять любой запрос SELECT, который включает данные из колонок x и/или y в db.table, например, SELECT x FROM db.table. john не может выполнить SELECT z FROM db.table. Запрос SELECT * FROM db.table также недоступен. Обрабатывая этот запрос, ClickHouse не возвращает никаких данных, даже x и y. Единственное исключение — если таблица содержит только колонки x и y, в этом случае ClickHouse возвращает все данные.
INSERT
Позволяет выполнять запросы INSERT.
Уровень привилегии: COLUMN.
Описание
Пользователь, обладающий этой привилегией, может выполнять запросы INSERT по указанному списку колонок в заданной таблице и базе данных. Если пользователь включает другие колонки, тогда указанный запрос не вносит никаких данных.
Пример
Предоставленная привилегия позволяет john вставлять данные в колонки x и/или y в db.table.
ALTER
Позволяет выполнять запросы ALTER в соответствии с следующей иерархией привилегий:
ALTER. Уровень:COLUMN.ALTER TABLE. Уровень:GROUPALTER UPDATE. Уровень:COLUMN. Псевдонимы:UPDATEALTER DELETE. Уровень:COLUMN. Псевдонимы:DELETEALTER COLUMN. Уровень:GROUPALTER ADD COLUMN. Уровень:COLUMN. Псевдонимы:ADD COLUMNALTER DROP COLUMN. Уровень:COLUMN. Псевдонимы:DROP COLUMNALTER MODIFY COLUMN. Уровень:COLUMN. Псевдонимы:MODIFY COLUMNALTER COMMENT COLUMN. Уровень:COLUMN. Псевдонимы:COMMENT COLUMNALTER CLEAR COLUMN. Уровень:COLUMN. Псевдонимы:CLEAR COLUMNALTER RENAME COLUMN. Уровень:COLUMN. Псевдонимы:RENAME COLUMNALTER INDEX. Уровень:GROUP. Псевдонимы:INDEXALTER ORDER BY. Уровень:TABLE. Псевдонимы:ALTER MODIFY ORDER BY,MODIFY ORDER BYALTER SAMPLE BY. Уровень:TABLE. Псевдонимы:ALTER MODIFY SAMPLE BY,MODIFY SAMPLE BYALTER ADD INDEX. Уровень:TABLE. Псевдонимы:ADD INDEXALTER DROP INDEX. Уровень:TABLE. Псевдонимы:DROP INDEXALTER MATERIALIZE INDEX. Уровень:TABLE. Псевдонимы:MATERIALIZE INDEXALTER CLEAR INDEX. Уровень:TABLE. Псевдонимы:CLEAR INDEXALTER CONSTRAINT. Уровень:GROUP. Псевдонимы:CONSTRAINTALTER ADD CONSTRAINT. Уровень:TABLE. Псевдонимы:ADD CONSTRAINTALTER DROP CONSTRAINT. Уровень:TABLE. Псевдонимы:DROP CONSTRAINTALTER TTL. Уровень:TABLE. Псевдонимы:ALTER MODIFY TTL,MODIFY TTLALTER MATERIALIZE TTL. Уровень:TABLE. Псевдонимы:MATERIALIZE TTLALTER SETTINGS. Уровень:TABLE. Псевдонимы:ALTER SETTING,ALTER MODIFY SETTING,MODIFY SETTINGALTER MOVE PARTITION. Уровень:TABLE. Псевдонимы:ALTER MOVE PART,MOVE PARTITION,MOVE PARTALTER FETCH PARTITION. Уровень:TABLE. Псевдонимы:ALTER FETCH PART,FETCH PARTITION,FETCH PARTALTER FREEZE PARTITION. Уровень:TABLE. Псевдонимы:FREEZE PARTITIONALTER VIEW. Уровень:GROUPALTER VIEW REFRESH. Уровень:VIEW. Псевдонимы:ALTER LIVE VIEW REFRESH,REFRESH VIEWALTER VIEW MODIFY QUERY. Уровень:VIEW. Псевдонимы:ALTER TABLE MODIFY QUERYALTER VIEW MODIFY SQL SECURITY. Уровень:VIEW. Псевдонимы:ALTER TABLE MODIFY SQL SECURITY
Примеры того, как эта иерархия обрабатывается:
- Привилегия
ALTERвключает все другие привилегииALTER*. ALTER CONSTRAINTвключает привилегииALTER ADD CONSTRAINTиALTER DROP CONSTRAINT.
Заметки
- Привилегия
MODIFY SETTINGпозволяет изменять настройки движка таблицы. Она не влияет на параметры конфигурации сервера. - Операция
ATTACHтребует привилегии CREATE. - Операция
DETACHтребует привилегии DROP. - Чтобы остановить мутацию с помощью запроса KILL MUTATION, вам нужно иметь привилегию на запуск этой мутации. Например, если вы хотите остановить запрос
ALTER UPDATE, вам нужна привилегияALTER UPDATE,ALTER TABLEилиALTER.
BACKUP
Позволяет выполнение запросов [BACKUP]. Для получения дополнительной информации о резервном копировании смотрите раздел "Резервное копирование и восстановление".
CREATE
Позволяет выполнять DDL-запросы CREATE и ATTACH в соответствии с следующей иерархией привилегий:
CREATE. Уровень:GROUPCREATE DATABASE. Уровень:DATABASECREATE TABLE. Уровень:TABLECREATE ARBITRARY TEMPORARY TABLE. Уровень:GLOBALCREATE TEMPORARY TABLE. Уровень:GLOBAL
CREATE VIEW. Уровень:VIEWCREATE DICTIONARY. Уровень:DICTIONARY
Заметки
- Чтобы удалить созданную таблицу, пользователю нужна привилегия DROP.
CLUSTER
Позволяет выполнять запросы ON CLUSTER.
По умолчанию запросы с ON CLUSTER требуют от пользователя наличия привилегии CLUSTER.
Если вы попытаетесь использовать ON CLUSTER в запросе без предварительного предоставления привилегии CLUSTER, вы получите следующую ошибку:
Поведение по умолчанию можно изменить, установив параметр on_cluster_queries_require_cluster_grant,
расположенный в разделе access_control_improvements файла config.xml (см. ниже), на false.
DROP
Позволяет выполнять запросы DROP и DETACH в соответствии с следующей иерархией привилегий:
DROP. Уровень:GROUPDROP DATABASE. Уровень:DATABASEDROP TABLE. Уровень:TABLEDROP VIEW. Уровень:VIEWDROP DICTIONARY. Уровень:DICTIONARY
TRUNCATE
Позволяет выполнять запросы TRUNCATE.
Уровень привилегии: TABLE.
OPTIMIZE
Позволяет выполнять запросы OPTIMIZE TABLE.
Уровень привилегии: TABLE.
SHOW
Позволяет выполнять запросы SHOW, DESCRIBE, USE и EXISTS в соответствии с следующей иерархией привилегий:
SHOW. Уровень:GROUPSHOW DATABASES. Уровень:DATABASE. Позволяет выполнять запросыSHOW DATABASES,SHOW CREATE DATABASE,USE <database>.SHOW TABLES. Уровень:TABLE. Позволяет выполнять запросыSHOW TABLES,EXISTS <table>,CHECK <table>.SHOW COLUMNS. Уровень:COLUMN. Позволяет выполнять запросыSHOW CREATE TABLE,DESCRIBE.SHOW DICTIONARIES. Уровень:DICTIONARY. Позволяет выполнять запросыSHOW DICTIONARIES,SHOW CREATE DICTIONARY,EXISTS <dictionary>.
Заметки
Пользователь имеет привилегию SHOW, если он имеет любую другую привилегию, касающуюся указанной таблицы, словаря или базы данных.
KILL QUERY
Позволяет выполнять запросы KILL в соответствии с следующей иерархией привилегий:
Уровень привилегии: GLOBAL.
Заметки
Привилегия KILL QUERY позволяет одному пользователю убивать запросы других пользователей.
УПРАВЛЕНИЕ ДОСТУПОМ
Позволяет пользователю выполнять запросы, которые управляют пользователями, ролями и политиками строк.
УПРАВЛЕНИЕ ДОСТУПОМ. Уровень:GROUPCREATE USER. Уровень:GLOBALALTER USER. Уровень:GLOBALDROP USER. Уровень:GLOBALCREATE ROLE. Уровень:GLOBALALTER ROLE. Уровень:GLOBALDROP ROLE. Уровень:GLOBALROLE ADMIN. Уровень:GLOBALCREATE ROW POLICY. Уровень:GLOBAL. Псевдонимы:CREATE POLICYALTER ROW POLICY. Уровень:GLOBAL. Псевдонимы:ALTER POLICYDROP ROW POLICY. Уровень:GLOBAL. Псевдонимы:DROP POLICYCREATE QUOTA. Уровень:GLOBALALTER QUOTA. Уровень:GLOBALDROP QUOTA. Уровень:GLOBALCREATE SETTINGS PROFILE. Уровень:GLOBAL. Псевдонимы:CREATE PROFILEALTER SETTINGS PROFILE. Уровень:GLOBAL. Псевдонимы:ALTER PROFILEDROP SETTINGS PROFILE. Уровень:GLOBAL. Псевдонимы:DROP PROFILESHOW ACCESS. Уровень:GROUPSHOW_USERS. Уровень:GLOBAL. Псевдонимы:SHOW CREATE USERSHOW_ROLES. Уровень:GLOBAL. Псевдонимы:SHOW CREATE ROLESHOW_ROW_POLICIES. Уровень:GLOBAL. Псевдонимы:SHOW POLICIES,SHOW CREATE ROW POLICY,SHOW CREATE POLICYSHOW_QUOTAS. Уровень:GLOBAL. Псевдонимы:SHOW CREATE QUOTASHOW_SETTINGS_PROFILES. Уровень:GLOBAL. Псевдонимы:SHOW PROFILES,SHOW CREATE SETTINGS PROFILE,SHOW CREATE PROFILE
ALLOW SQL SECURITY NONE. Уровень:GLOBAL. Псевдонимы:CREATE SQL SECURITY NONE,SQL SECURITY NONE,SECURITY NONE
Привилегия ROLE ADMIN позволяет пользователю назначать и отзывать любые роли, включая те, которые не назначены пользователю с административным вариантом.
СИСТЕМА
Позволяет пользователю выполнять запросы SYSTEM в соответствии с следующей иерархией привилегий.
SYSTEM. Уровень:GROUPSYSTEM SHUTDOWN. Уровень:GLOBAL. Псевдонимы:SYSTEM KILL,SHUTDOWNSYSTEM DROP CACHE. Псевдонимы:DROP CACHESYSTEM DROP DNS CACHE. Уровень:GLOBAL. Псевдонимы:SYSTEM DROP DNS,DROP DNS CACHE,DROP DNSSYSTEM DROP MARK CACHE. Уровень:GLOBAL. Псевдонимы:SYSTEM DROP MARK,DROP MARK CACHE,DROP MARKSSYSTEM DROP UNCOMPRESSED CACHE. Уровень:GLOBAL. Псевдонимы:SYSTEM DROP UNCOMPRESSED,DROP UNCOMPRESSED CACHE,DROP UNCOMPRESSED
SYSTEM RELOAD. Уровень:GROUPSYSTEM RELOAD CONFIG. Уровень:GLOBAL. Псевдонимы:RELOAD CONFIGSYSTEM RELOAD DICTIONARY. Уровень:GLOBAL. Псевдонимы:SYSTEM RELOAD DICTIONARIES,RELOAD DICTIONARY,RELOAD DICTIONARIESSYSTEM RELOAD EMBEDDED DICTIONARIES. Уровень:GLOBAL. Псевдонимы:RELOAD EMBEDDED DICTIONARIES
SYSTEM MERGES. Уровень:TABLE. Псевдонимы:SYSTEM STOP MERGES,SYSTEM START MERGES,STOP MERGES,START MERGESSYSTEM TTL MERGES. Уровень:TABLE. Псевдонимы:SYSTEM STOP TTL MERGES,SYSTEM START TTL MERGES,STOP TTL MERGES,START TTL MERGESSYSTEM FETCHES. Уровень:TABLE. Псевдонимы:SYSTEM STOP FETCHES,SYSTEM START FETCHES,STOP FETCHES,START FETCHESSYSTEM MOVES. Уровень:TABLE. Псевдонимы:SYSTEM STOP MOVES,SYSTEM START MOVES,STOP MOVES,START MOVESSYSTEM SENDS. Уровень:GROUP. Псевдонимы:SYSTEM STOP SENDS,SYSTEM START SENDS,STOP SENDS,START SENDSSYSTEM DISTRIBUTED SENDS. Уровень:TABLE. Псевдонимы:SYSTEM STOP DISTRIBUTED SENDS,SYSTEM START DISTRIBUTED SENDS,STOP DISTRIBUTED SENDS,START DISTRIBUTED SENDSSYSTEM REPLICATED SENDS. Уровень:TABLE. Псевдонимы:SYSTEM STOP REPLICATED SENDS,SYSTEM START REPLICATED SENDS,STOP REPLICATED SENDS,START REPLICATED SENDS
SYSTEM REPLICATION QUEUES. Уровень:TABLE. Псевдонимы:SYSTEM STOP REPLICATION QUEUES,SYSTEM START REPLICATION QUEUES,STOP REPLICATION QUEUES,START REPLICATION QUEUESSYSTEM SYNC REPLICA. Уровень:TABLE. Псевдонимы:SYNC REPLICASYSTEM RESTART REPLICA. Уровень:TABLE. Псевдонимы:RESTART REPLICASYSTEM FLUSH. Уровень:GROUPSYSTEM FLUSH DISTRIBUTED. Уровень:TABLE. Псевдонимы:FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS. Уровень:GLOBAL. Псевдонимы:FLUSH LOGS
Привилегия SYSTEM RELOAD EMBEDDED DICTIONARIES предоставляется неявно привилегией SYSTEM RELOAD DICTIONARY ON *.*.
ИНТРОСПЕКЦИЯ
Позволяет использовать функции интроспекции.
ИНТРОСПЕКЦИЯ. Уровень:GROUP. Псевдонимы:ИНТРОСПЕКЦИОННЫЕ ФУНКЦИИaddressToLine. Уровень:GLOBALaddressToLineWithInlines. Уровень:GLOBALaddressToSymbol. Уровень:GLOBALdemangle. Уровень:GLOBAL
ИСТОЧНИКИ
Позволяет использовать внешние источники данных. Применяется к движкам таблиц и табличным функциям.
READ. Уровень:GLOBAL_WITH_PARAMETERWRITE. Уровень:GLOBAL_WITH_PARAMETER
Возможные параметры:
AZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
Разделение на гранты READ/WRITE для источников доступно, начиная с версии 25.7 и только с настройкой сервера
access_control_improvements.enable_read_write_grants
В противном случае вы должны использовать синтаксис GRANT AZURE ON *.* TO user, который эквивалентен новому GRANT READ, WRITE ON AZURE TO user
Примеры:
- Чтобы создать таблицу с помощью MySQL движка таблиц, вам нужны привилегии
CREATE TABLE (ON db.table_name)иMYSQL. - Чтобы использовать mysql табличную функцию, вам нужны привилегии
CREATE TEMPORARY TABLEиMYSQL.
Гранты фильтров источников
Эта функция доступна, начиная с версии 25.8 и только с настройкой сервера
access_control_improvements.enable_read_write_grants
Вы можете предоставить доступ к конкретным URI источников с помощью фильтров регулярных выражений. Это позволяет добиться детализированного контроля над тем, к каким внешним источникам данных пользователи могут получить доступ.
Синтаксис:
Этот грант позволит пользователю читать только из S3 URI, которые соответствуют указанному шаблону регулярного выражения.
Примеры:
Предоставление доступа к конкретным путям корзины S3:
Повторное предоставление с GRANT OPTION:
Если оригинальный грант имел WITH GRANT OPTION, его можно повторно предоставить с помощью GRANT CURRENT GRANTS:
Важные ограничения:
- Частичные отзыва не допускаются: Вы не можете отозвать подмножество предоставленного шаблона фильтра. Вы должны отозвать весь грант и повторно предоставить с новыми шаблонами, если это необходимо.
- Гранты с подстановочными знаками не допускаются: Вы не можете использовать
GRANT READ ON *('regexp')или аналогичные шаблоны только с подстановочными знаками. Необходимо указать конкретный источник.
dictGet
dictGet. Псевдонимы:dictHas,dictGetHierarchy,dictIsIn
Позволяет пользователю выполнять функции dictGet, dictHas, dictGetHierarchy, dictIsIn.
Уровень привилегии: DICTIONARY.
Примеры
GRANT dictGet ON mydb.mydictionary TO johnGRANT dictGet ON mydictionary TO john
displaySecretsInShowAndSelect
Позволяет пользователю видеть секреты в запросах SHOW и SELECT, если оба
display_secrets_in_show_and_select серверный параметр
и
format_display_secrets_in_show_and_select параметр формата
включены.
ADMIN УПРАВЛЕНИЕ НАЗВАННЫМИ СОБРАНИЯМИ
Позволяет выполнять определенные операции над указанной именованной коллекцией. До версии 23.7 она называлась НАДЗОР НАЗВАННЫХ СОБРАНИЙ, а после 23.7 добавлено название ADMIN УПРАВЛЕНИЕ НАЗВАННЫМИ СОБРАНИЯМИ, а НАДЗОР НАЗВАННЫХ СОБРАНИЙ сохранён как псевдоним.
ADMIN УПРАВЛЕНИЕ НАЗВАННЫМИ СОБРАНИЯМИ. Уровень:NAMED_COLLECTION. Псевдонимы:НАДЗОР НАЗВАННЫХ СОБРАНИЙCREATE NAMED COLLECTION. Уровень:NAMED_COLLECTIONDROP NAMED COLLECTION. Уровень:NAMED_COLLECTIONALTER NAMED COLLECTION. Уровень:NAMED_COLLECTIONSHOW NAMED COLLECTIONS. Уровень:NAMED_COLLECTION. Псевдонимы:SHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS. Уровень:NAMED_COLLECTION. Псевдонимы:SHOW NAMED COLLECTIONS SECRETSNAMED COLLECTION. Уровень:NAMED_COLLECTION. Псевдонимы:НАЗВАННАЯ КОЛЛЕКЦИЯ ИСПОЛЬЗОВАНИЯ,ИСПОЛЬЗОВАТЬ НАЗВАННУЮ КОЛЛЕКЦИЮ
В отличие от всех других грантов (CREATE, DROP, ALTER, SHOW) грант NAMED COLLECTION был добавлен только в 23.7, в то время как все остальные были добавлены ранее - в 22.12.
Примеры
Предположим, что именованная коллекция называется abc, мы предоставляем привилегию CREATE NAMED COLLECTION пользователю john.
GRANT CREATE NAMED COLLECTION ON abc TO john
ДВИЖОК ТАБЛИЦ
Позволяет использовать указанный движок таблиц при создании таблицы. Применяется к движкам таблиц.
Примеры
GRANT TABLE ENGINE ON * TO johnGRANT TABLE ENGINE ON TinyLog TO john
ALL
Предоставляет все привилегии на регулируемую сущность учетной записи пользователя или роли.
Привилегия ALL не поддерживается в ClickHouse Cloud, где у пользователя default ограниченные разрешения. Пользователи могут предоставить максимальные разрешения пользователю, предоставив роль default_role. См. здесь для получения дополнительных сведений.
Пользователи также могут использовать GRANT CURRENT GRANTS как пользователь по умолчанию для достижения аналогичных эффектов с ALL.
NONE
Не предоставляет никаких привилегий.
ADMIN OPTION
Привилегия ADMIN OPTION позволяет пользователю предоставлять свою роль другому пользователю.