GRANT 语句
- 授予 权限 给 ClickHouse 用户账户或角色。
- 分配角色给用户账户或其它角色。
要撤销权限,请使用 REVOKE 语句。您还可以使用 SHOW GRANTS 语句列出已授予的权限。
授予权限语法
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|table[*]|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] [WITH REPLACE OPTION]
privilege— 权限类型。role— ClickHouse 用户角色。user— ClickHouse 用户账户。
WITH GRANT OPTION 子句授予 user 或 role 执行 GRANT 查询的权限。用户可以授予他们拥有范围相同或更小的权限。WITH REPLACE OPTION 子句替换 user 或 role 的旧权限为新权限,如果未指定,则追加权限。
分配角色语法
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION] [WITH REPLACE OPTION]
role— ClickHouse 用户角色。user— ClickHouse 用户账户。
WITH ADMIN OPTION 子句授予 user 或 role ADMIN OPTION 权限。WITH REPLACE OPTION 子句替换 user 或 role 的旧角色为新角色,如果未指定,则追加角色。
授予当前权限语法
GRANT CURRENT GRANTS{(privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*}) | ON {db.table|db.*|*.*|table|*}} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] [WITH REPLACE OPTION]
privilege— 权限类型。role— ClickHouse 用户角色。user— ClickHouse 用户账户。
使用 CURRENT GRANTS 语句允许您将所有指定的权限授予给定的用户或角色。如果未指定任何权限,则给定的用户或角色将接收 CURRENT_USER 的所有可用权限。
用法
要使用 GRANT,您的账户必须具有 GRANT OPTION 权限。您只能在您的账户权限范围内授予权限。
例如,管理员通过以下查询授予了 john 账户权限
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
这意味着 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 数据库(因为此数据库用于处理查询)。
您可以在一个查询中向多个账户授予多个权限。查询 GRANT SELECT, INSERT ON *.* TO john, robin 允许账户 john 和 robin 在服务器上所有数据库的所有表上执行 INSERT 和 SELECT 查询。
通配符授权
指定权限时,您可以使用星号 (*) 代替表名或数据库名。例如,GRANT SELECT ON db.* TO john 查询允许 john 在 db 数据库中的所有表上执行 SELECT 查询。此外,您可以省略数据库名称。在这种情况下,权限将授予当前数据库。例如,GRANT SELECT ON * TO john 授予当前数据库中所有表的权限,GRANT SELECT ON mytable TO john 授予当前数据库中 mytable 表的权限。
以下描述的功能从 ClickHouse 24.10 版本开始可用。
您还可以在表名或数据库名的末尾放置星号。此功能允许您授予对表路径抽象前缀的权限。示例:GRANT SELECT ON db.my_tables* TO john。此查询允许 john 在所有数据库为 db 且前缀为 my_tables* 的表上执行 SELECT 查询。
更多示例
GRANT SELECT ON db.my_tables* TO john
SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted
SELECT * FROM db.other_table -- not_granted
SELECT * FROM db2.my_tables -- not_granted
GRANT SELECT ON db*.* TO john
SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted
SELECT * FROM db.other_table -- granted
SELECT * FROM db2.my_tables -- granted
在授予路径中新创建的所有表将自动继承其父级的所有授权。例如,如果您运行 GRANT SELECT ON db.* TO john 查询,然后创建一个新表 db.new_table,则用户 john 将能够运行 SELECT * FROM db.new_table 查询。
您只能为前缀指定星号
GRANT SELECT ON db.* TO john -- correct
GRANT SELECT ON db*.* TO john -- correct
GRANT SELECT ON *.my_table TO john -- wrong
GRANT SELECT ON foo*bar TO john -- wrong
GRANT SELECT ON *suffix TO john -- wrong
GRANT SELECT(foo) ON db.table* TO john -- wrong
权限
权限是执行特定类型查询的许可。
权限具有分层结构。允许的查询集取决于权限范围。
权限层级结构
- SELECT
- INSERT
- ALTER
ALTER TABLEALTER UPDATEALTER DELETEALTER COLUMNALTER ADD COLUMNALTER DROP COLUMNALTER MODIFY COLUMNALTER COMMENT COLUMNALTER CLEAR COLUMNALTER RENAME COLUMN
ALTER INDEXALTER ORDER BYALTER SAMPLE BYALTER ADD INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER CLEAR INDEX
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER TTLALTER MATERIALIZE TTL
ALTER SETTINGSALTER MOVE PARTITIONALTER FETCH PARTITIONALTER FREEZE PARTITION
ALTER VIEWALTER VIEW REFRESHALTER VIEW MODIFY QUERYALTER VIEW MODIFY SQL SECURITY
- CREATE
CREATE DATABASECREATE TABLECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE VIEWCREATE DICTIONARYCREATE FUNCTION
- DROP
DROP DATABASEDROP TABLEDROP VIEWDROP DICTIONARYDROP FUNCTION
- TRUNCATE
- OPTIMIZE
- SHOW
SHOW DATABASESSHOW TABLESSHOW COLUMNSSHOW DICTIONARIES
- KILL QUERY
- 访问管理
CREATE USERALTER USERDROP USERCREATE ROLEALTER ROLEDROP ROLECREATE ROW POLICYALTER ROW POLICYDROP ROW POLICYCREATE QUOTAALTER QUOTADROP QUOTACREATE SETTINGS PROFILEALTER SETTINGS PROFILEDROP SETTINGS PROFILESHOW ACCESSSHOW_USERSSHOW_ROLESSHOW_ROW_POLICIESSHOW_QUOTASSHOW_SETTINGS_PROFILES
ROLE ADMIN
- SYSTEM
SYSTEM SHUTDOWNSYSTEM DROP CACHESYSTEM DROP DNS CACHESYSTEM DROP MARK CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM RELOADSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIES
SYSTEM RELOAD FUNCTIONSYSTEM RELOAD FUNCTIONS
SYSTEM MERGESSYSTEM TTL MERGESSYSTEM FETCHESSYSTEM MOVESSYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM REPLICATION QUEUESSYSTEM SYNC REPLICASYSTEM RESTART REPLICASYSTEM FLUSHSYSTEM FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS
CLUSTER(另请参阅access_control_improvements.on_cluster_queries_require_cluster_grant配置指令)
- INTROSPECTION
addressToLineaddressToLineWithInlinesaddressToSymboldemangle
- SOURCES
AZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
- dictGet
- displaySecretsInShowAndSelect
- 命名集合管理
CREATE NAMED COLLECTIONDROP NAMED COLLECTIONALTER NAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS命名集合
- 表引擎
此层级结构如何处理的示例
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 查询。如果用户包含其他未指定的列,则查询不返回任何数据。
考虑以下权限
GRANT SELECT(x,y) ON db.table TO john
此权限允许 john 执行任何涉及 db.table 中 x 和/或 y 列数据的 SELECT 查询,例如,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 查询。如果用户包含其他未指定的列,则查询不插入任何数据。
示例
GRANT INSERT(x,y) ON db.table TO john
授予的权限允许 john 将数据插入到 db.table 中的 x 和/或 y 列。
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 COLUMN
ALTER 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 INDEX
ALTER CONSTRAINT。级别:GROUP。别名:CONSTRAINTALTER ADD CONSTRAINT。级别:TABLE。别名:ADD CONSTRAINTALTER DROP CONSTRAINT。级别:TABLE。别名:DROP CONSTRAINT
ALTER TTL。级别:TABLE。别名:ALTER MODIFY TTL、MODIFY TTLALTER MATERIALIZE TTL。级别:TABLE。别名:MATERIALIZE TTL
ALTER 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 PARTITION
ALTER 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 查询停止 mutation,您需要拥有启动此 mutation 的权限。例如,如果您想停止
ALTER UPDATE查询,您需要ALTER UPDATE、ALTER TABLE或ALTER权限。
CREATE
允许根据以下权限层级结构执行 CREATE 和 ATTACH DDL 查询
CREATE。级别:GROUPCREATE DATABASE。级别:DATABASECREATE TABLE。级别:TABLECREATE ARBITRARY TEMPORARY TABLE。级别:GLOBALCREATE TEMPORARY TABLE。级别:GLOBAL
CREATE VIEW。级别:VIEWCREATE DICTIONARY。级别:DICTIONARY
注意
- 要删除创建的表,用户需要 DROP 权限。
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 权限允许一个用户终止其他用户的查询。
访问管理
允许用户执行管理用户、角色和行策略的查询。
ACCESS MANAGEMENT。级别: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 查询。
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. Level:GLOBAL. Aliases:SYSTEM RELOAD DICTIONARIES,RELOAD DICTIONARY,RELOAD DICTIONARIESSYSTEM RELOAD EMBEDDED DICTIONARIES. Level:GLOBAL. Aliases:RELOAD EMBEDDED DICTIONARIES
SYSTEM MERGES. Level:TABLE. Aliases:SYSTEM STOP MERGES,SYSTEM START MERGES,STOP MERGES,START MERGESSYSTEM TTL MERGES. Level:TABLE. Aliases:SYSTEM STOP TTL MERGES,SYSTEM START TTL MERGES,STOP TTL MERGES,START TTL MERGESSYSTEM FETCHES. Level:TABLE. Aliases:SYSTEM STOP FETCHES,SYSTEM START FETCHES,STOP FETCHES,START FETCHESSYSTEM MOVES. Level:TABLE. Aliases:SYSTEM STOP MOVES,SYSTEM START MOVES,STOP MOVES,START MOVESSYSTEM SENDS. Level:GROUP. Aliases:SYSTEM STOP SENDS,SYSTEM START SENDS,STOP SENDS,START SENDSSYSTEM DISTRIBUTED SENDS. Level:TABLE. Aliases:SYSTEM STOP DISTRIBUTED SENDS,SYSTEM START DISTRIBUTED SENDS,STOP DISTRIBUTED SENDS,START DISTRIBUTED SENDSSYSTEM REPLICATED SENDS. Level:TABLE. Aliases:SYSTEM STOP REPLICATED SENDS,SYSTEM START REPLICATED SENDS,STOP REPLICATED SENDS,START REPLICATED SENDS
SYSTEM REPLICATION QUEUES. Level:TABLE. Aliases:SYSTEM STOP REPLICATION QUEUES,SYSTEM START REPLICATION QUEUES,STOP REPLICATION QUEUES,START REPLICATION QUEUESSYSTEM SYNC REPLICA. Level:TABLE. Aliases:SYNC REPLICASYSTEM RESTART REPLICA. Level:TABLE. Aliases:RESTART REPLICASYSTEM FLUSH. Level:GROUPSYSTEM FLUSH DISTRIBUTED. Level:TABLE. Aliases:FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS. Level:GLOBAL. Aliases:FLUSH LOGS
SYSTEM RELOAD EMBEDDED DICTIONARIES 权限由 SYSTEM RELOAD DICTIONARY ON *.* 权限隐式授予。
内省
允许使用 内省 函数。
INTROSPECTION。Level:GROUP。Aliases:INTROSPECTION FUNCTIONSaddressToLine。Level:GLOBALaddressToLineWithInlines。Level:GLOBALaddressToSymbol。Level:GLOBALdemangle。Level:GLOBAL
数据源
SOURCES。Level:GROUPAZURE。Level:GLOBALFILE。Level:GLOBALHDFS。Level:GLOBALHIVE。Level:GLOBALJDBC。Level:GLOBALKAFKA。Level:GLOBALMONGO。Level:GLOBALMYSQL。Level:GLOBALNATS。Level:GLOBALODBC。Level:GLOBALPOSTGRES。Level:GLOBALRABBITMQ。Level:GLOBALREDIS。Level:GLOBALREMOTE。Level:GLOBALS3。Level:GLOBALSQLITE。Level:GLOBALURL。Level:GLOBAL
SOURCES 权限允许使用所有数据源。您也可以单独为每个数据源授予权限。要使用数据源,您需要额外的权限。
示例
- 要使用 MySQL 表引擎 创建表,您需要
CREATE TABLE (ON db.table_name)和MYSQL权限。 - 要使用 mysql 表函数,您需要
CREATE TEMPORARY TABLE和MYSQL权限。
dictGet
dictGet。Aliases:dictHas,dictGetHierarchy,dictIsIn
允许用户执行 dictGet、dictHas、dictGetHierarchy、dictIsIn 函数。
权限级别:DICTIONARY。
示例
GRANT dictGet ON mydb.mydictionary TO johnGRANT dictGet ON mydictionary TO john
displaySecretsInShowAndSelect
如果同时开启了 display_secrets_in_show_and_select 服务器设置 和 format_display_secrets_in_show_and_select 格式设置,则允许用户在 SHOW 和 SELECT 查询中查看密钥。
命名集合管理
允许对指定的命名集合执行特定操作。在 23.7 版本之前,它被称为 NAMED COLLECTION CONTROL,在 23.7 版本之后,添加了 NAMED COLLECTION ADMIN,并将 NAMED COLLECTION CONTROL 保留为别名。
NAMED COLLECTION ADMIN。Level:NAMED_COLLECTION。Aliases:NAMED COLLECTION CONTROLCREATE NAMED COLLECTION。Level:NAMED_COLLECTIONDROP NAMED COLLECTION。Level:NAMED_COLLECTIONALTER NAMED COLLECTION。Level:NAMED_COLLECTIONSHOW NAMED COLLECTIONS。Level:NAMED_COLLECTION。Aliases:SHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS。Level:NAMED_COLLECTION。Aliases:SHOW NAMED COLLECTIONS SECRETSNAMED COLLECTION。Level:NAMED_COLLECTION。Aliases:NAMED COLLECTION USAGE, USE 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
向用户帐户或角色授予对受监管实体的所有权限。
ClickHouse Cloud 不支持 ALL 权限,在 ClickHouse Cloud 中,default 用户的权限受到限制。用户可以通过授予 default_role 来向用户授予最大权限。有关更多详细信息,请参阅此处。用户还可以使用 GRANT CURRENT GRANTS 作为默认用户来实现与 ALL 类似的效果。
NONE
不授予任何权限。
ADMIN OPTION
ADMIN OPTION 权限允许用户将其角色授予另一个用户。