跳到主要内容
跳到主要内容

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 子句授予 userrole 执行 GRANT 查询的权限。用户可以授予他们拥有范围相同或更小的权限。WITH REPLACE OPTION 子句替换 userrole 的旧权限为新权限,如果未指定,则追加权限。

分配角色语法

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 子句授予 userrole ADMIN OPTION 权限。WITH REPLACE OPTION 子句替换 userrole 的旧角色为新角色,如果未指定,则追加角色。

授予当前权限语法

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.tableSELECT * FROM db.table 也是不可用的。处理此查询时,ClickHouse 不会返回任何数据,即使是 xy。唯一的例外是表仅包含 xy 列。在这种情况下,ClickHouse 返回所有数据。

此外,john 拥有 GRANT OPTION 权限,因此它可以授予其他用户相同或更小范围的权限。

始终允许访问 system 数据库(因为此数据库用于处理查询)。

您可以在一个查询中向多个账户授予多个权限。查询 GRANT SELECT, INSERT ON *.* TO john, robin 允许账户 johnrobin 在服务器上所有数据库的所有表上执行 INSERTSELECT 查询。

通配符授权

指定权限时,您可以使用星号 (*) 代替表名或数据库名。例如,GRANT SELECT ON db.* TO john 查询允许 johndb 数据库中的所有表上执行 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 TABLE
      • ALTER UPDATE
      • ALTER DELETE
      • ALTER COLUMN
        • ALTER ADD COLUMN
        • ALTER DROP COLUMN
        • ALTER MODIFY COLUMN
        • ALTER COMMENT COLUMN
        • ALTER CLEAR COLUMN
        • ALTER RENAME COLUMN
      • ALTER INDEX
        • ALTER ORDER BY
        • ALTER SAMPLE BY
        • ALTER ADD INDEX
        • ALTER DROP INDEX
        • ALTER MATERIALIZE INDEX
        • ALTER CLEAR INDEX
      • ALTER CONSTRAINT
        • ALTER ADD CONSTRAINT
        • ALTER DROP CONSTRAINT
      • ALTER TTL
        • ALTER MATERIALIZE TTL
      • ALTER SETTINGS
      • ALTER MOVE PARTITION
      • ALTER FETCH PARTITION
      • ALTER FREEZE PARTITION
    • ALTER VIEW
      • ALTER VIEW REFRESH
      • ALTER VIEW MODIFY QUERY
      • ALTER VIEW MODIFY SQL SECURITY
  • CREATE
    • CREATE DATABASE
    • CREATE TABLE
      • CREATE ARBITRARY TEMPORARY TABLE
        • CREATE TEMPORARY TABLE
    • CREATE VIEW
    • CREATE DICTIONARY
    • CREATE FUNCTION
  • DROP
    • DROP DATABASE
    • DROP TABLE
    • DROP VIEW
    • DROP DICTIONARY
    • DROP FUNCTION
  • TRUNCATE
  • OPTIMIZE
  • SHOW
    • SHOW DATABASES
    • SHOW TABLES
    • SHOW COLUMNS
    • SHOW DICTIONARIES
  • KILL QUERY
  • 访问管理
    • CREATE USER
    • ALTER USER
    • DROP USER
    • CREATE ROLE
    • ALTER ROLE
    • DROP ROLE
    • CREATE ROW POLICY
    • ALTER ROW POLICY
    • DROP ROW POLICY
    • CREATE QUOTA
    • ALTER QUOTA
    • DROP QUOTA
    • CREATE SETTINGS PROFILE
    • ALTER SETTINGS PROFILE
    • DROP SETTINGS PROFILE
    • SHOW ACCESS
      • SHOW_USERS
      • SHOW_ROLES
      • SHOW_ROW_POLICIES
      • SHOW_QUOTAS
      • SHOW_SETTINGS_PROFILES
    • ROLE ADMIN
  • SYSTEM
    • SYSTEM SHUTDOWN
    • SYSTEM DROP CACHE
      • SYSTEM DROP DNS CACHE
      • SYSTEM DROP MARK CACHE
      • SYSTEM DROP UNCOMPRESSED CACHE
    • SYSTEM RELOAD
      • SYSTEM RELOAD CONFIG
      • SYSTEM RELOAD DICTIONARY
        • SYSTEM RELOAD EMBEDDED DICTIONARIES
      • SYSTEM RELOAD FUNCTION
      • SYSTEM RELOAD FUNCTIONS
    • SYSTEM MERGES
    • SYSTEM TTL MERGES
    • SYSTEM FETCHES
    • SYSTEM MOVES
    • SYSTEM SENDS
      • SYSTEM DISTRIBUTED SENDS
      • SYSTEM REPLICATED SENDS
    • SYSTEM REPLICATION QUEUES
    • SYSTEM SYNC REPLICA
    • SYSTEM RESTART REPLICA
    • SYSTEM FLUSH
      • SYSTEM FLUSH DISTRIBUTED
      • SYSTEM FLUSH LOGS
    • CLUSTER (另请参阅 access_control_improvements.on_cluster_queries_require_cluster_grant 配置指令)
  • INTROSPECTION
    • addressToLine
    • addressToLineWithInlines
    • addressToSymbol
    • demangle
  • SOURCES
    • AZURE
    • FILE
    • HDFS
    • HIVE
    • JDBC
    • KAFKA
    • MONGO
    • MYSQL
    • NATS
    • ODBC
    • POSTGRES
    • RABBITMQ
    • REDIS
    • REMOTE
    • S3
    • SQLITE
    • URL
  • dictGet
  • displaySecretsInShowAndSelect
  • 命名集合管理
    • CREATE NAMED COLLECTION
    • DROP NAMED COLLECTION
    • ALTER NAMED COLLECTION
    • SHOW NAMED COLLECTIONS
    • SHOW NAMED COLLECTIONS SECRETS
    • 命名集合
  • 表引擎

此层级结构如何处理的示例

  • ALTER 权限包括所有其他 ALTER* 权限。
  • ALTER CONSTRAINT 包括 ALTER ADD CONSTRAINTALTER DROP CONSTRAINT 权限。

权限在不同的级别应用。了解级别可以提示权限可用的语法。

级别(从低到高)

  • COLUMN — 权限可以授予列、表、数据库或全局。
  • TABLE — 权限可以授予表、数据库或全局。
  • VIEW — 权限可以授予视图、数据库或全局。
  • DICTIONARY — 权限可以授予字典、数据库或全局。
  • DATABASE — 权限可以授予数据库或全局。
  • GLOBAL — 权限只能全局授予。
  • GROUP — 对不同级别的权限进行分组。当授予 GROUP 级别权限时,仅授予组中与使用的语法相对应的权限。

允许的语法示例

  • GRANT SELECT(x) ON db.table TO user
  • GRANT SELECT ON db.* TO user

不允许的语法示例

  • GRANT CREATE USER(x) ON db.table TO user
  • GRANT CREATE USER ON db.* TO user

特殊的权限 ALL 授予用户账户或角色所有权限。

默认情况下,用户账户或角色没有任何权限。

如果用户或角色没有任何权限,则显示为 NONE 权限。

某些查询的实现需要一组权限。例如,要执行 RENAME 查询,您需要以下权限:SELECTCREATE TABLEINSERTDROP TABLE

SELECT

允许执行 SELECT 查询。

权限级别:COLUMN

描述

被授予此权限的用户可以对指定表和数据库中指定的列列表执行 SELECT 查询。如果用户包含其他未指定的列,则查询不返回任何数据。

考虑以下权限

GRANT SELECT(x,y) ON db.table TO john

此权限允许 john 执行任何涉及 db.tablex 和/或 y 列数据的 SELECT 查询,例如,SELECT x FROM db.tablejohn 不能执行 SELECT z FROM db.tableSELECT * FROM db.table 也是不可用的。处理此查询时,ClickHouse 不会返回任何数据,即使是 xy。唯一的例外是表仅包含 xy 列,在这种情况下,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。级别:GROUP
      • ALTER UPDATE。级别:COLUMN。别名:UPDATE
      • ALTER DELETE。级别:COLUMN。别名:DELETE
      • ALTER COLUMN。级别:GROUP
        • ALTER ADD COLUMN。级别:COLUMN。别名:ADD COLUMN
        • ALTER DROP COLUMN。级别:COLUMN。别名:DROP COLUMN
        • ALTER MODIFY COLUMN。级别:COLUMN。别名:MODIFY COLUMN
        • ALTER COMMENT COLUMN。级别:COLUMN。别名:COMMENT COLUMN
        • ALTER CLEAR COLUMN。级别:COLUMN。别名:CLEAR COLUMN
        • ALTER RENAME COLUMN。级别:COLUMN。别名:RENAME COLUMN
      • ALTER INDEX。级别:GROUP。别名:INDEX
        • ALTER ORDER BY。级别:TABLE。别名:ALTER MODIFY ORDER BYMODIFY ORDER BY
        • ALTER SAMPLE BY。级别:TABLE。别名:ALTER MODIFY SAMPLE BYMODIFY SAMPLE BY
        • ALTER ADD INDEX。级别:TABLE。别名:ADD INDEX
        • ALTER DROP INDEX。级别:TABLE。别名:DROP INDEX
        • ALTER MATERIALIZE INDEX。级别:TABLE。别名:MATERIALIZE INDEX
        • ALTER CLEAR INDEX。级别:TABLE。别名:CLEAR INDEX
      • ALTER CONSTRAINT。级别:GROUP。别名:CONSTRAINT
        • ALTER ADD CONSTRAINT。级别:TABLE。别名:ADD CONSTRAINT
        • ALTER DROP CONSTRAINT。级别:TABLE。别名:DROP CONSTRAINT
      • ALTER TTL。级别:TABLE。别名:ALTER MODIFY TTLMODIFY TTL
        • ALTER MATERIALIZE TTL。级别:TABLE。别名:MATERIALIZE TTL
      • ALTER SETTINGS。级别:TABLE。别名:ALTER SETTINGALTER MODIFY SETTINGMODIFY SETTING
      • ALTER MOVE PARTITION。级别:TABLE。别名:ALTER MOVE PARTMOVE PARTITIONMOVE PART
      • ALTER FETCH PARTITION。级别:TABLE。别名:ALTER FETCH PARTFETCH PARTITIONFETCH PART
      • ALTER FREEZE PARTITION。级别:TABLE。别名:FREEZE PARTITION
    • ALTER VIEW 级别:GROUP
      • ALTER VIEW REFRESH。级别:VIEW。别名:ALTER LIVE VIEW REFRESHREFRESH VIEW
      • ALTER VIEW MODIFY QUERY。级别:VIEW。别名:ALTER TABLE MODIFY QUERY
      • ALTER VIEW MODIFY SQL SECURITY。级别:VIEW。别名:ALTER TABLE MODIFY SQL SECURITY

此层级结构如何处理的示例

  • ALTER 权限包括所有其他 ALTER* 权限。
  • ALTER CONSTRAINT 包括 ALTER ADD CONSTRAINTALTER DROP CONSTRAINT 权限。

注意

  • MODIFY SETTING 权限允许修改表引擎设置。它不影响设置或服务器配置参数。
  • ATTACH 操作需要 CREATE 权限。
  • DETACH 操作需要 DROP 权限。
  • 要通过 KILL MUTATION 查询停止 mutation,您需要拥有启动此 mutation 的权限。例如,如果您想停止 ALTER UPDATE 查询,您需要 ALTER UPDATEALTER TABLEALTER 权限。

CREATE

允许根据以下权限层级结构执行 CREATEATTACH DDL 查询

  • CREATE。级别:GROUP
    • CREATE DATABASE。级别:DATABASE
    • CREATE TABLE。级别:TABLE
      • CREATE ARBITRARY TEMPORARY TABLE。级别:GLOBAL
        • CREATE TEMPORARY TABLE。级别:GLOBAL
    • CREATE VIEW。级别:VIEW
    • CREATE DICTIONARY。级别:DICTIONARY

注意

  • 要删除创建的表,用户需要 DROP 权限。

DROP

允许根据以下权限层级结构执行 DROPDETACH 查询

  • DROP。级别:GROUP
    • DROP DATABASE。级别:DATABASE
    • DROP TABLE。级别:TABLE
    • DROP VIEW。级别:VIEW
    • DROP DICTIONARY。级别:DICTIONARY

TRUNCATE

允许执行 TRUNCATE 查询。

权限级别:TABLE

OPTIMIZE

允许执行 OPTIMIZE TABLE 查询。

权限级别:TABLE

SHOW

允许根据以下权限层级结构执行 SHOWDESCRIBEUSEEXISTS 查询

  • SHOW。级别:GROUP
    • SHOW DATABASES。级别:DATABASE。允许执行 SHOW DATABASESSHOW CREATE DATABASEUSE <database> 查询。
    • SHOW TABLES。级别:TABLE。允许执行 SHOW TABLESEXISTS <table>CHECK <table> 查询。
    • SHOW COLUMNS。级别:COLUMN。允许执行 SHOW CREATE TABLEDESCRIBE 查询。
    • SHOW DICTIONARIES。级别:DICTIONARY。允许执行 SHOW DICTIONARIESSHOW CREATE DICTIONARYEXISTS <dictionary> 查询。

注意

如果用户具有关于指定表、字典或数据库的任何其他权限,则该用户具有 SHOW 权限。

KILL QUERY

允许根据以下权限层级结构执行 KILL 查询

权限级别:GLOBAL

注意

KILL QUERY 权限允许一个用户终止其他用户的查询。

访问管理

允许用户执行管理用户、角色和行策略的查询。

  • ACCESS MANAGEMENT。级别:GROUP
    • CREATE USER。级别:GLOBAL
    • ALTER USER。级别:GLOBAL
    • DROP USER。级别:GLOBAL
    • CREATE ROLE。级别:GLOBAL
    • ALTER ROLE。级别:GLOBAL
    • DROP ROLE。级别:GLOBAL
    • ROLE ADMIN。级别:GLOBAL
    • CREATE ROW POLICY。级别:GLOBAL。别名:CREATE POLICY
    • ALTER ROW POLICY。级别:GLOBAL。别名:ALTER POLICY
    • DROP ROW POLICY。级别:GLOBAL。别名:DROP POLICY
    • CREATE QUOTA。级别:GLOBAL
    • ALTER QUOTA。级别:GLOBAL
    • DROP QUOTA。级别:GLOBAL
    • CREATE SETTINGS PROFILE。级别:GLOBAL。别名:CREATE PROFILE
    • ALTER SETTINGS PROFILE。级别:GLOBAL。别名:ALTER PROFILE
    • DROP SETTINGS PROFILE。级别:GLOBAL。别名:DROP PROFILE
    • SHOW ACCESS。级别:GROUP
      • SHOW_USERS。级别:GLOBAL。别名:SHOW CREATE USER
      • SHOW_ROLES。级别:GLOBAL。别名:SHOW CREATE ROLE
      • SHOW_ROW_POLICIES。级别:GLOBAL。别名:SHOW POLICIESSHOW CREATE ROW POLICYSHOW CREATE POLICY
      • SHOW_QUOTAS。级别:GLOBAL。别名:SHOW CREATE QUOTA
      • SHOW_SETTINGS_PROFILES。级别:GLOBAL。别名:SHOW PROFILESSHOW CREATE SETTINGS PROFILESHOW CREATE PROFILE
    • ALLOW SQL SECURITY NONE。级别:GLOBAL。别名:CREATE SQL SECURITY NONESQL SECURITY NONESECURITY NONE

ROLE ADMIN 权限允许用户分配和撤销任何角色,包括那些未分配给具有管理员选项的用户的角色。

SYSTEM

允许用户根据以下权限层级结构执行 SYSTEM 查询。

  • SYSTEM。级别:GROUP
    • SYSTEM SHUTDOWN。级别:GLOBAL。别名:SYSTEM KILLSHUTDOWN
    • SYSTEM DROP CACHE。别名:DROP CACHE
      • SYSTEM DROP DNS CACHE。级别:GLOBAL。别名:SYSTEM DROP DNSDROP DNS CACHEDROP DNS
      • SYSTEM DROP MARK CACHE。级别:GLOBAL。别名:SYSTEM DROP MARKDROP MARK CACHEDROP MARKS
      • SYSTEM DROP UNCOMPRESSED CACHE。级别:GLOBAL。别名:SYSTEM DROP UNCOMPRESSEDDROP UNCOMPRESSED CACHEDROP UNCOMPRESSED
    • SYSTEM RELOAD。级别:GROUP
      • SYSTEM RELOAD CONFIG。级别:GLOBAL。别名:RELOAD CONFIG
      • SYSTEM RELOAD DICTIONARY. Level: GLOBAL. Aliases: SYSTEM RELOAD DICTIONARIES, RELOAD DICTIONARY, RELOAD DICTIONARIES
        • SYSTEM RELOAD EMBEDDED DICTIONARIES. Level: GLOBAL. Aliases: RELOAD EMBEDDED DICTIONARIES
    • SYSTEM MERGES. Level: TABLE. Aliases: SYSTEM STOP MERGES, SYSTEM START MERGES, STOP MERGES, START MERGES
    • SYSTEM TTL MERGES. Level: TABLE. Aliases: SYSTEM STOP TTL MERGES, SYSTEM START TTL MERGES, STOP TTL MERGES, START TTL MERGES
    • SYSTEM FETCHES. Level: TABLE. Aliases: SYSTEM STOP FETCHES, SYSTEM START FETCHES, STOP FETCHES, START FETCHES
    • SYSTEM MOVES. Level: TABLE. Aliases: SYSTEM STOP MOVES, SYSTEM START MOVES, STOP MOVES, START MOVES
    • SYSTEM SENDS. Level: GROUP. Aliases: SYSTEM STOP SENDS, SYSTEM START SENDS, STOP SENDS, START SENDS
      • SYSTEM DISTRIBUTED SENDS. Level: TABLE. Aliases: SYSTEM STOP DISTRIBUTED SENDS, SYSTEM START DISTRIBUTED SENDS, STOP DISTRIBUTED SENDS, START DISTRIBUTED SENDS
      • SYSTEM 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 QUEUES
    • SYSTEM SYNC REPLICA. Level: TABLE. Aliases: SYNC REPLICA
    • SYSTEM RESTART REPLICA. Level: TABLE. Aliases: RESTART REPLICA
    • SYSTEM FLUSH. Level: GROUP
      • SYSTEM FLUSH DISTRIBUTED. Level: TABLE. Aliases: FLUSH DISTRIBUTED
      • SYSTEM FLUSH LOGS. Level: GLOBAL. Aliases: FLUSH LOGS

SYSTEM RELOAD EMBEDDED DICTIONARIES 权限由 SYSTEM RELOAD DICTIONARY ON *.* 权限隐式授予。

内省

允许使用 内省 函数。

  • INTROSPECTION。Level: GROUP。Aliases: INTROSPECTION FUNCTIONS
    • addressToLine。Level: GLOBAL
    • addressToLineWithInlines。Level: GLOBAL
    • addressToSymbol。Level: GLOBAL
    • demangle。Level: GLOBAL

数据源

允许使用外部数据源。适用于 表引擎表函数

  • SOURCES。Level: GROUP
    • AZURE。Level: GLOBAL
    • FILE。Level: GLOBAL
    • HDFS。Level: GLOBAL
    • HIVE。Level: GLOBAL
    • JDBC。Level: GLOBAL
    • KAFKA。Level: GLOBAL
    • MONGO。Level: GLOBAL
    • MYSQL。Level: GLOBAL
    • NATS。Level: GLOBAL
    • ODBC。Level: GLOBAL
    • POSTGRES。Level: GLOBAL
    • RABBITMQ。Level: GLOBAL
    • REDIS。Level: GLOBAL
    • REMOTE。Level: GLOBAL
    • S3。Level: GLOBAL
    • SQLITE。Level: GLOBAL
    • URL。Level: GLOBAL

SOURCES 权限允许使用所有数据源。您也可以单独为每个数据源授予权限。要使用数据源,您需要额外的权限。

示例

  • 要使用 MySQL 表引擎 创建表,您需要 CREATE TABLE (ON db.table_name)MYSQL 权限。
  • 要使用 mysql 表函数,您需要 CREATE TEMPORARY TABLEMYSQL 权限。

dictGet

  • dictGet。Aliases: dictHas, dictGetHierarchy, dictIsIn

允许用户执行 dictGetdictHasdictGetHierarchydictIsIn 函数。

权限级别:DICTIONARY

示例

  • GRANT dictGet ON mydb.mydictionary TO john
  • GRANT dictGet ON mydictionary TO john

displaySecretsInShowAndSelect

如果同时开启了 display_secrets_in_show_and_select 服务器设置format_display_secrets_in_show_and_select 格式设置,则允许用户在 SHOWSELECT 查询中查看密钥。

命名集合管理

允许对指定的命名集合执行特定操作。在 23.7 版本之前,它被称为 NAMED COLLECTION CONTROL,在 23.7 版本之后,添加了 NAMED COLLECTION ADMIN,并将 NAMED COLLECTION CONTROL 保留为别名。

  • NAMED COLLECTION ADMIN。Level: NAMED_COLLECTION。Aliases: NAMED COLLECTION CONTROL
    • CREATE NAMED COLLECTION。Level: NAMED_COLLECTION
    • DROP NAMED COLLECTION。Level: NAMED_COLLECTION
    • ALTER NAMED COLLECTION。Level: NAMED_COLLECTION
    • SHOW NAMED COLLECTIONS。Level: NAMED_COLLECTION。Aliases: SHOW NAMED COLLECTIONS
    • SHOW NAMED COLLECTIONS SECRETS。Level: NAMED_COLLECTION。Aliases: SHOW NAMED COLLECTIONS SECRETS
    • NAMED 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 john
  • GRANT TABLE ENGINE ON TinyLog TO john

ALL

ClickHouse Cloud 中不支持

向用户帐户或角色授予对受监管实体的所有权限。

注意

ClickHouse Cloud 不支持 ALL 权限,在 ClickHouse Cloud 中,default 用户的权限受到限制。用户可以通过授予 default_role 来向用户授予最大权限。有关更多详细信息,请参阅此处。用户还可以使用 GRANT CURRENT GRANTS 作为默认用户来实现与 ALL 类似的效果。

NONE

不授予任何权限。

ADMIN OPTION

ADMIN OPTION 权限允许用户将其角色授予另一个用户。