Skip to main content
  • 権限を ClickHouse のユーザーアカウントまたはロールに付与します。
  • ロールをユーザーアカウントまたは他のロールに割り当てます。
権限を取り消すには、REVOKEステートメントを使用します。付与されている権限は、SHOW GRANTSステートメントで確認できます。

権限付与の構文

  • privilege — 権限の種類。
  • role — ClickHouse のユーザーロール。
  • user — ClickHouse のユーザーアカウント。
WITH GRANT OPTION 句は、user または roleGRANT クエリを実行する権限を付与します。ユーザーは、自身が持つ権限と同じスコープ、またはそれより狭いスコープの権限を付与できます。 WITH REPLACE OPTION 句は、user または role に対する既存の権限を新しい権限で置き換えます。これが指定されていない場合は、権限が追加されます。

ロールの割り当て構文

  • role — ClickHouse のユーザーロール。
  • user — ClickHouse のユーザーアカウント。
WITH ADMIN OPTION 句は、user または roleADMIN OPTION 権限を付与します。 WITH REPLACE OPTION 句は、user または role の既存のロールを新しいロールで置き換えます。指定しない場合は、ロールが追加されます。

Grant Current Grants の構文

  • 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.
johnSELECT z FROM db.table を実行できません。SELECT * FROM db.table も実行できません。このクエリを処理する場合、ClickHouse は xy についてもデータを一切返しません。唯一の例外は、テーブルに xy のカラムしかない場合です。この場合、ClickHouse はすべてのデータを返します。 また、johnGRANT OPTION 権限も持っているため、同じスコープまたはそれより狭いスコープの権限を他のユーザーに付与できます。 system データベースへのアクセスは常に許可されます (このデータベースはクエリの処理に使用されるためです) 。
新規ユーザーがデフォルトでアクセスできるシステムテーブルは多数ありますが、権限が付与されていない場合、すべてのシステムテーブルにデフォルトでアクセスできるわけではありません。 さらに、system.zookeeper など一部のシステムテーブルへのアクセスは、セキュリティ上の理由により Cloud ユーザーには制限されています。
1 つのクエリで、複数のアカウントに複数の権限を付与できます。クエリ GRANT SELECT, INSERT ON *.* TO john, robin を使用すると、アカウント johnrobin は、サーバー上のすべてのデータベース内のすべてのテーブルに対して INSERT クエリと SELECT クエリを実行できます。

ワイルドカードを使った権限付与

権限を指定する際は、テーブル名やデータベース名の代わりにアスタリスク (*) を使用できます。たとえば、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。このクエリでは、johndb データベース内で my_tables をプレフィックスに持つすべてのテーブルに対する SELECT クエリの実行を許可します。 さらに例を示します。 GRANT SELECT ON db.my_tables* TO john
GRANT SELECT ON db*.* TO john
付与されたパス内で新たに作成されたすべてのテーブルは、自動的に親からすべての権限を継承します。 たとえば、GRANT SELECT ON db.* TO john クエリを実行した後に新しいテーブル db.new_table を作成すると、ユーザー johnSELECT * FROM db.new_table クエリを実行できます。 アスタリスクを指定できるのは、プレフィックスに対してのみです。

権限

権限とは、ユーザーに対して特定の種類のクエリの実行を許可するものです。 権限には階層構造があり、実行できるクエリの範囲は権限のスコープによって決まります。 ClickHouse における権限の階層は以下のとおりです。
  • ALL
    • アクセス管理
      • ALLOW SQL SECURITY NONE
      • ALTER QUOTA
      • ALTER ROLE
      • ALTER ROW POLICY
      • ALTER SETTINGS PROFILE
      • ALTER USER
      • CREATE QUOTA
      • CREATE ROLE
      • CREATE ROW POLICY
      • CREATE SETTINGS PROFILE
      • CREATE USER
      • DROP QUOTA
      • DROP ROLE
      • DROP ROW POLICY
      • DROP SETTINGS PROFILE
      • DROP USER
      • ROLE ADMIN
      • SHOW ACCESS
        • SHOW QUOTAS
        • SHOW ROLES
        • SHOW ROW POLICIES
        • SHOW SETTINGS PROFILES
        • SHOW USERS
    • ALTER
      • ALTER DATABASE
        • ALTER DATABASE SETTINGS
      • ALTER TABLE
        • ALTER COLUMN
          • ALTER ADD COLUMN
          • ALTER CLEAR COLUMN
          • ALTER COMMENT COLUMN
          • ALTER DROP COLUMN
          • ALTER MATERIALIZE COLUMN
          • ALTER MODIFY COLUMN
          • ALTER RENAME COLUMN
        • ALTER CONSTRAINT
          • ALTER ADD CONSTRAINT
          • ALTER DROP CONSTRAINT
          • ALTER MODIFY CONSTRAINT
        • ALTER DELETE
        • ALTER FETCH PARTITION
        • ALTER FREEZE PARTITION
        • ALTER INDEX
          • ALTER ADD INDEX
          • ALTER CLEAR INDEX
          • ALTER DROP INDEX
          • ALTER MATERIALIZE INDEX
          • ALTER ORDER BY
          • ALTER SAMPLE BY
        • ALTER MATERIALIZE TTL
        • ALTER MODIFY COMMENT
        • ALTER MOVE PARTITION
        • ALTER PROJECTION
        • ALTER SETTINGS
        • ALTER STATISTICS
          • ALTER ADD STATISTICS
          • ALTER DROP STATISTICS
          • ALTER MATERIALIZE STATISTICS
          • ALTER MODIFY STATISTICS
        • ALTER TTL
        • ALTER UPDATE
        • ALTER TABLE EXECUTE
      • ALTER VIEW
        • ALTER VIEW MODIFY QUERY
        • ALTER VIEW REFRESH
        • ALTER VIEW MODIFY SQL SECURITY
    • BACKUP
    • CLUSTER
    • CREATE
      • CREATE ARBITRARY TEMPORARY TABLE
        • CREATE TEMPORARY TABLE
      • CREATE DATABASE
      • CREATE DICTIONARY
      • CREATE FUNCTION
      • CREATE RESOURCE
      • CREATE TABLE
      • CREATE VIEW
      • CREATE WORKLOAD
    • dictGet
    • displaySecretsInShowAndSelect
    • DROP
      • DROP DATABASE
      • DROP DICTIONARY
      • DROP FUNCTION
      • DROP RESOURCE
      • DROP TABLE
      • DROP VIEW
      • DROP WORKLOAD
    • INSERT
    • INTROSPECTION
      • addressToLine
      • addressToLineWithInlines
      • addressToSymbol
      • demangle
    • KILL QUERY
    • KILL TRANSACTION
    • MOVE PARTITION BETWEEN SHARDS
    • NAMED COLLECTION ADMIN
      • ALTER NAMED COLLECTION
      • CREATE NAMED COLLECTION
      • DROP NAMED COLLECTION
      • NAMED COLLECTION
      • SHOW NAMED COLLECTIONS
      • SHOW NAMED COLLECTIONS SECRETS
    • OPTIMIZE
    • SELECT
    • SET DEFINER
    • SHOW
      • SHOW COLUMNS
      • SHOW DATABASES
      • SHOW DICTIONARIES
      • SHOW TABLES
    • SHOW FILESYSTEM CACHES
    • SOURCES
      • AZURE
      • BIGQUERY
      • FILE
      • HDFS
      • HIVE
      • JDBC
      • KAFKA
      • MONGO
      • MYSQL
      • NATS
      • ODBC
      • POSTGRES
      • RABBITMQ
      • REDIS
      • REMOTE
      • S3
      • SQLITE
      • URL
    • SYSTEM
      • SYSTEM BACKGROUND
        • SYSTEM STREAMING ENGINES
        • SYSTEM VIEWS
      • SYSTEM CLEANUP
      • SYSTEM DROP CACHE
        • SYSTEM DROP COMPILED EXPRESSION CACHE
        • SYSTEM DROP CONNECTIONS CACHE
        • SYSTEM DROP DISTRIBUTED CACHE
        • SYSTEM DROP DNS CACHE
        • SYSTEM DROP FILESYSTEM CACHE
        • SYSTEM DROP FORMAT SCHEMA CACHE
        • SYSTEM DROP MARK CACHE
        • SYSTEM DROP MMAP CACHE
        • SYSTEM DROP PAGE CACHE
        • SYSTEM DROP PRIMARY INDEX CACHE
        • SYSTEM DROP QUERY CACHE
        • SYSTEM DROP S3 CLIENT CACHE
        • SYSTEM DROP SCHEMA CACHE
        • SYSTEM DROP UNCOMPRESSED CACHE
      • SYSTEM DROP REPLICA
      • SYSTEM FAILPOINT
      • SYSTEM FETCHES
      • SYSTEM FLUSH
        • SYSTEM FLUSH ASYNC INSERT QUEUE
        • SYSTEM FLUSH LOGS
      • SYSTEM JEMALLOC
      • SYSTEM LISTEN
      • SYSTEM LOAD PRIMARY KEY
      • SYSTEM MERGES
      • SYSTEM MOVES
      • SYSTEM PULLING REPLICATION LOG
      • SYSTEM REDUCE BLOCKING PARTS
      • SYSTEM REPLICATION QUEUES
      • SYSTEM REPLICA READINESS
      • SYSTEM RESET DDL WORKER
      • SYSTEM RESTART DISK
      • SYSTEM RESTART REPLICA
      • SYSTEM RESTORE REPLICA
      • SYSTEM RELOAD
        • SYSTEM RELOAD ASYNCHRONOUS METRICS
        • SYSTEM RELOAD CONFIG
          • SYSTEM RELOAD DICTIONARY
          • SYSTEM RELOAD EMBEDDED DICTIONARIES
          • SYSTEM RELOAD FUNCTION
          • SYSTEM RELOAD MODEL
          • SYSTEM RELOAD USERS
      • SYSTEM SENDS
        • SYSTEM DISTRIBUTED SENDS
        • SYSTEM REPLICATED SENDS
      • SYSTEM SHUTDOWN
      • SYSTEM SYNC DATABASE REPLICA
      • SYSTEM SYNC FILE CACHE
      • SYSTEM SYNC FILESYSTEM CACHE
      • SYSTEM SYNC REPLICA
      • SYSTEM SYNC TRANSACTION LOG
      • SYSTEM THREAD FUZZER
      • SYSTEM TTL MERGES
      • SYSTEM UNFREEZE
      • SYSTEM UNLOAD PRIMARY KEY
      • SYSTEM VIRTUAL PARTS UPDATE
      • SYSTEM WAIT LOADING PARTS
    • テーブルエンジン
    • TRUNCATE
    • UNDROP TABLE
  • NONE
この階層がどのように扱われるかの例:
  • ALTER 権限には、ほかのすべての ALTER* 権限が含まれます。
  • ALTER CONSTRAINT には、ALTER ADD CONSTRAINT 権限、ALTER DROP CONSTRAINT 権限、ALTER MODIFY CONSTRAINT 権限が含まれます。
権限は異なるレベルで適用されます。レベルがわかると、その権限に対して使用できる構文もわかります。 レベル (低いものから高いものの順) :
  • COLUMN — 権限はカラム、テーブル、データベース、またはグローバルに対して付与できます。
  • TABLE — 権限はテーブル、データベース、またはグローバルに対して付与できます。
  • VIEW — 権限はビュー、データベース、またはグローバルに対して付与できます。
  • DICTIONARY — 権限は 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 クエリを実行できます。指定されたもの以外のカラムをユーザーが含めた場合、そのクエリはデータを返しません。 次の権限について考えてみましょう。
この権限により、johndb.tablex および/または y カラムのデータを含む任意の SELECT クエリを実行できます。たとえば、SELECT x FROM db.table です。johnSELECT z FROM db.table を実行できません。SELECT * FROM db.table も実行できません。このクエリを処理しても、ClickHouse は xy を含め、データを一切返しません。唯一の例外は、テーブルに xy のカラムしかない場合で、この場合は ClickHouse がすべてのデータを返します。

INSERT

INSERT クエリの実行を許可します。 権限レベル: COLUMN 説明 この権限を付与されたユーザーは、指定したデータベース内の指定したテーブルに対して、指定されたカラムの一覧に対する INSERT クエリを実行できます。ユーザーが指定されたもの以外のカラムを含めた場合、そのクエリではデータは挿入されません。
付与された権限により、johndb.tablex および/または 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 BY, MODIFY ORDER BY
    • ALTER SAMPLE BY。レベル: TABLE。別名: ALTER MODIFY SAMPLE BY, MODIFY 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 MODIFY CONSTRAINT。レベル: TABLE。別名: MODIFY CONSTRAINT
    • ALTER TTL。レベル: TABLE。別名: ALTER MODIFY TTL, MODIFY TTL
    • ALTER MATERIALIZE TTL。レベル: TABLE。別名: MATERIALIZE TTL
    • ALTER SETTINGS。レベル: TABLE。別名: ALTER SETTING, ALTER MODIFY SETTING, MODIFY SETTING
    • ALTER MOVE PARTITION。レベル: TABLE。別名: ALTER MOVE PART, MOVE PARTITION, MOVE PART
    • ALTER FETCH PARTITION。レベル: TABLE。別名: ALTER FETCH PART, FETCH PARTITION, FETCH PART
    • ALTER FREEZE PARTITION。レベル: TABLE。別名: FREEZE PARTITION
    • ALTER EXECUTE。レベル: TABLE。別名: ALTER TABLE EXECUTE
    • ALTER VIEW。レベル: GROUP
    • ALTER VIEW REFRESH。レベル: VIEW。別名: REFRESH 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 CONSTRAINTALTER MODIFY CONSTRAINT の権限が含まれます。
注記
  • MODIFY SETTING 権限では、テーブルエンジンの設定を変更できます。settings やサーバー設定のパラメータには影響しません。
  • ATTACH 操作には CREATE 権限が必要です。
  • DETACH 操作には DROP 権限が必要です。
  • KILL MUTATIONクエリでミューテーションを停止するには、そのミューテーションを開始できる権限が必要です。たとえば、ALTER UPDATE クエリを停止したい場合は、ALTER UPDATEALTER TABLE、または ALTER 権限が必要です。

BACKUP

クエリで [BACKUP] を実行できます。バックアップの詳細については、“バックアップと復元” をご覧ください。

CREATE

次の権限階層に応じて、CREATE および ATTACH 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 権限が必要です。

クラスター

ON CLUSTER クエリを実行できます。
Syntax
デフォルトでは、ON CLUSTER を含むクエリを実行するには、ユーザーに CLUSTER 権限付与が必要です。 CLUSTER 権限付与を事前に行わずにクエリで ON CLUSTER を使おうとすると、次のエラーが発生します。
デフォルトの動作は、config.xmlaccess_control_improvements セクションにある on_cluster_queries_require_cluster_grant 設定 (以下を参照) を false に設定することで変更できます。
config.xml

DROP

以下の権限階層に従って、DROP および DETACH クエリを実行できます。
  • 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。レベル: DATABASESHOW DATABASESSHOW CREATE DATABASEUSE <database> クエリの実行を許可します。
    • SHOW TABLES。レベル: TABLESHOW TABLESEXISTS <table>CHECK <table> クエリの実行を許可します。
    • SHOW COLUMNS。レベル: COLUMNSHOW CREATE TABLEDESCRIBE クエリの実行を許可します。
    • SHOW DICTIONARIES。レベル: DICTIONARYSHOW DICTIONARIESSHOW CREATE DICTIONARYEXISTS <dictionary> クエリの実行を許可します。
注意 指定したテーブル、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 POLICIES, SHOW CREATE ROW POLICY, SHOW CREATE POLICY
      • SHOW_QUOTAS. レベル: GLOBAL. 別名: SHOW CREATE QUOTA
      • SHOW_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 権限があると、admin オプション付きでそのユーザーに付与されていないロールも含め、あらゆるロールを付与したり取り消したりできます。

SYSTEM

以下の権限階層に従って、ユーザーは SYSTEM クエリを実行できます。
  • SYSTEM。レベル: GROUP
    • SYSTEM SHUTDOWN。レベル: GLOBAL。別名: SYSTEM KILL, SHUTDOWN
    • SYSTEM DROP CACHE。別名: DROP CACHE
      • SYSTEM DROP DNS CACHE。レベル: GLOBAL。別名: SYSTEM CLEAR DNS CACHE, SYSTEM DROP DNS, DROP DNS CACHE, DROP DNS
      • SYSTEM DROP MARK CACHE。レベル: GLOBAL。別名: SYSTEM CLEAR MARK CACHE, SYSTEM DROP MARK, DROP MARK CACHE, DROP MARKS
      • SYSTEM DROP UNCOMPRESSED CACHE。レベル: GLOBAL。別名: SYSTEM CLEAR UNCOMPRESSED CACHE, SYSTEM DROP UNCOMPRESSED, DROP UNCOMPRESSED CACHE, DROP UNCOMPRESSED
    • SYSTEM RELOAD。レベル: GROUP
      • SYSTEM RELOAD CONFIG。レベル: GLOBAL。別名: RELOAD CONFIG
      • SYSTEM RELOAD DICTIONARY。レベル: GLOBAL。別名: SYSTEM RELOAD DICTIONARIES, RELOAD DICTIONARY, RELOAD DICTIONARIES, SYSTEM UNLOAD DICTIONARY, SYSTEM UNLOAD DICTIONARIES, UNLOAD DICTIONARY, UNLOAD DICTIONARIES
        • SYSTEM RELOAD EMBEDDED DICTIONARIES。レベル: GLOBAL。別名: RELOAD EMBEDDED DICTIONARIES
    • SYSTEM MERGES。レベル: TABLE。別名: SYSTEM STOP MERGES, SYSTEM START MERGES, STOP MERGES, START MERGES
    • SYSTEM TTL MERGES。レベル: TABLE。別名: SYSTEM STOP TTL MERGES, SYSTEM START TTL MERGES, STOP TTL MERGES, START TTL MERGES
    • SYSTEM FETCHES。レベル: TABLE。別名: SYSTEM STOP FETCHES, SYSTEM START FETCHES, STOP FETCHES, START FETCHES
    • SYSTEM MOVES。レベル: TABLE。別名: SYSTEM STOP MOVES, SYSTEM START MOVES, STOP MOVES, START MOVES
    • SYSTEM SENDS。レベル: GROUP。別名: SYSTEM STOP SENDS, SYSTEM START SENDS, STOP SENDS, START SENDS
      • SYSTEM DISTRIBUTED SENDS。レベル: TABLE。別名: SYSTEM STOP DISTRIBUTED SENDS, SYSTEM START DISTRIBUTED SENDS, STOP DISTRIBUTED SENDS, START DISTRIBUTED SENDS
      • SYSTEM 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 QUEUES
    • SYSTEM SYNC REPLICA。レベル: TABLE。別名: SYNC REPLICA
    • SYSTEM RESTART REPLICA。レベル: TABLE。別名: RESTART REPLICA
    • SYSTEM BACKGROUND。レベル: GROUP
      • SYSTEM STREAMING ENGINES。レベル: TABLE
      • SYSTEM VIEWS。レベル: VIEW。別名: SYSTEM REFRESH VIEW, SYSTEM START VIEWS, SYSTEM STOP VIEWS, SYSTEM START VIEW, SYSTEM STOP VIEW, SYSTEM PAUSE VIEWS, SYSTEM PAUSE VIEW, SYSTEM CANCEL VIEW, REFRESH VIEW, START VIEWS, STOP VIEWS, START VIEW, STOP VIEW, PAUSE VIEWS, PAUSE VIEW, CANCEL VIEW
    • SYSTEM FLUSH。レベル: GROUP
      • SYSTEM FLUSH DISTRIBUTED。レベル: TABLE。別名: FLUSH DISTRIBUTED
      • SYSTEM FLUSH LOGS。レベル: GLOBAL。別名: FLUSH LOGS
SYSTEM UNLOAD DICTIONARY および SYSTEM UNLOAD DICTIONARIES コマンドは SYSTEM RELOAD DICTIONARY 権限を使用するため、SYSTEM RELOAD DICTIONARY を持つユーザーは Dictionary をアンロードすることもできます。 SYSTEM RELOAD EMBEDDED DICTIONARIES 権限は、SYSTEM RELOAD DICTIONARY ON *.* 権限により暗黙的に付与されます。

INTROSPECTION

イントロスペクション関数を使用できるようにします。
  • INTROSPECTION. レベル: GROUP. 別名: INTROSPECTION FUNCTIONS
    • addressToLine. レベル: GLOBAL
    • addressToLineWithInlines. レベル: GLOBAL
    • addressToSymbol. レベル: GLOBAL
    • demangle. レベル: GLOBAL

SOURCES

外部データソースの使用を許可します。テーブルエンジンおよびテーブル関数に適用されます。
  • READ. レベル: GLOBAL_WITH_PARAMETER
  • WRITE. レベル: GLOBAL_WITH_PARAMETER
指定可能なパラメーター:
  • AZURE
  • BIGQUERY
  • FILE
  • HDFS
  • HIVE
  • JDBC
  • KAFKA
  • MONGO
  • MYSQL
  • NATS
  • ODBC
  • POSTGRES
  • RABBITMQ
  • REDIS
  • REMOTE
  • S3
  • SQLITE
  • URL
SOURCES に対する READ/WRITE 権限の分離は、バージョン 25.7 以降で、かつサーバー設定 access_control_improvements.enable_read_write_grants が有効な場合にのみ利用できます。それ以外の場合は、GRANT AZURE ON *.* TO user 構文を使用してください。これは新しい GRANT READ, WRITE ON AZURE TO user と同等です。
例:

ソースフィルターの権限付与

この機能は、バージョン 25.8 以降で、サーバー設定 access_control_improvements.enable_read_write_grants が有効な場合にのみ利用できます
正規表現フィルターを使うことで、特定のソース URI へのアクセス権を付与できます。これにより、ユーザーがアクセスできる外部データソースをきめ細かく制御できます。 構文:
この権限付与により、ユーザーは指定した正規表現パターンに一致する S3 URI からのみ読み取りできるようになります。 例: 特定の S3 バケットパスへのアクセスを許可します:
ソースフィルターはパラメータに regexp を取るため、権限付与 GRANT READ ON URL('http://www.google.com') TO john;によって、次のクエリも許可されます。
これは、正規表現では .Any Single Character として扱われるためです。 そのため、潜在的な脆弱性につながる可能性があります。正しい権限付与は次のとおりです。
GRANT OPTION を付けた再付与: 元の権限付与に WITH GRANT OPTION が含まれている場合は、GRANT CURRENT GRANTS を使用して再付与できます:
重要な制限事項:
  • 部分的な取り消しはできません: 付与済みのフィルターパターンの一部だけを取り消すことはできません。必要な場合は、付与全体をいったん取り消したうえで、新しいパターンで再付与する必要があります。
  • ワイルドカードによる権限付与はできません: GRANT READ ON *('regexp') や、これに類するワイルドカードのみのパターンは使用できません。必ず具体的なソースを指定してください。

dictGet

  • dictGet。別名: dictHas, dictGetHierarchy, dictGetRoot, dictGetChildren, dictGetDescendants, dictIsIn
ユーザーに dictGetdictHasdictGetHierarchydictGetRootdictGetChildrendictGetDescendantsdictIsIn 関数の実行を許可します。 権限レベル: 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 フォーマット設定 の両方が有効になっている場合、ユーザーは SHOW クエリおよび SELECT クエリでシークレットを表示できます。

NAMED COLLECTION ADMIN

指定した named collection に対する特定の操作を許可する権限です。バージョン 23.7 より前は NAMED COLLECTION CONTROL と呼ばれていましたが、23.7 以降は NAMED COLLECTION ADMIN が追加され、NAMED COLLECTION CONTROL は別名として維持されています。
  • NAMED COLLECTION ADMIN. レベル: NAMED_COLLECTION. 別名: NAMED COLLECTION CONTROL
    • CREATE NAMED COLLECTION. レベル: NAMED_COLLECTION
    • DROP NAMED COLLECTION. レベル: NAMED_COLLECTION
    • ALTER NAMED COLLECTION. レベル: NAMED_COLLECTION
    • SHOW NAMED COLLECTIONS. レベル: NAMED_COLLECTION. 別名: SHOW NAMED COLLECTIONS
    • SHOW NAMED COLLECTIONS SECRETS. レベル: NAMED_COLLECTION. 別名: SHOW NAMED COLLECTIONS SECRETS
    • NAMED COLLECTION. レベル: NAMED_COLLECTION. 別名: NAMED COLLECTION USAGE, USE NAMED COLLECTION
他のすべての権限 (CREATE、DROP、ALTER、SHOW) とは異なり、NAMED COLLECTION 権限が追加されたのは 23.7 で、他はそれより前の 22.12 に追加されています。 named collection の名前が abc であるとすると、ユーザー john に CREATE NAMED COLLECTION 権限を付与します。
  • GRANT CREATE NAMED COLLECTION ON abc TO john

TABLE ENGINE

テーブル作成時に、指定したテーブルエンジンを使用できるようにします。テーブルエンジン に適用されます。
  • GRANT TABLE ENGINE ON * TO john
  • GRANT TABLE ENGINE ON TinyLog TO john
デフォルトでは、後方互換性のため、特定のテーブルエンジンを指定したテーブル作成では権限チェックが無視されます。 ただし、config.xml で table_engines_require_grant to true を設定すると、この動作を変更できます。
外部ソースを使用する一部のテーブルエンジンでは、対応するソースに対する READ/WRITE 権限が必要になる場合があります。SOURCES を参照してください。 たとえば、AzureBlobStorage テーブルエンジンでは、次の権限が必要になる場合があります。
  • GRANT READ, WRITE ON AZURE TO john

ALL

規制対象エンティティに対するすべての権限を、ユーザーアカウントまたはロールに付与します。
権限 ALL は ClickHouse Cloud ではサポートされておらず、default ユーザーに付与される権限は制限されています。ユーザーに最大限の権限を付与するには、default_role を付与します。詳細はこちらを参照してください。 また、default ユーザーとして GRANT CURRENT GRANTS を使用することで、ALL と同様の効果を得ることもできます。

NONE

権限は一切付与されません。

ADMIN OPTION

ADMIN OPTION 権限があると、ユーザーは自身のロールを別のユーザーに付与できます。
最終更新日 2026年8月14日