Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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 または roleGRANT クエリを実行する権限を付与します。ユーザーは、自身が持つ権限と同じスコープ、またはそれより狭いスコープの権限を付与できます。 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 または roleADMIN OPTION 権限を付与します。 WITH REPLACE OPTION 句は、user または role の既存のロールを新しいロールで置き換えます。指定しない場合は、ロールが追加されます。

Grant Current Grants の構文

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.

johnSELECT z FROM db.table を実行できません。SELECT * FROM db.table も実行できません。このクエリを処理する場合、ClickHouse は xy についてもデータを一切返しません。唯一の例外は、テーブルに xy のカラムしかない場合です。この場合、ClickHouse はすべてのデータを返します。

また、johnGRANT OPTION 権限も持っているため、同じスコープまたはそれより狭いスコープの権限を他のユーザーに付与できます。

system データベースへのアクセスは常に許可されます (このデータベースはクエリの処理に使用されるためです) 。

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 テーブルに対する権限を付与します。

テーブル名またはデータベース名の末尾にアスタリスクを付けることもできます。この機能を使うと、テーブルのパスのプレフィックスを指定して権限を付与できます。 例: GRANT SELECT ON db.my_tables* TO john。このクエリでは、johndb データベース内で my_tables をプレフィックスに持つすべてのテーブルに対する SELECT クエリの実行を許可します。

さらに例を示します。

GRANT SELECT ON db.my_tables* TO john

SELECT * FROM db.my_tables -- 許可済み
SELECT * FROM db.my_tables_0 -- 許可済み
SELECT * FROM db.my_tables_1 -- 許可済み

SELECT * FROM db.other_table -- 未許可
SELECT * FROM db2.my_tables -- 未許可

GRANT SELECT ON db*.* TO john

SELECT * FROM db.my_tables -- 許可済み
SELECT * FROM db.my_tables_0 -- 許可済み
SELECT * FROM db.my_tables_1 -- 許可済み
SELECT * FROM db.other_table -- 許可済み
SELECT * FROM db2.my_tables -- 許可済み

付与されたパス内で新たに作成されたすべてのテーブルは、自動的に親からすべての権限を継承します。 たとえば、GRANT SELECT ON db.* TO john クエリを実行した後に新しいテーブル db.new_table を作成すると、ユーザー johnSELECT * FROM db.new_table クエリを実行できます。

アスタリスクを指定できるのは、プレフィックスに対してのみです。

GRANT SELECT ON db.* TO john -- 正しい
GRANT SELECT ON db*.* TO john -- 正しい

GRANT SELECT ON *.my_table TO john -- 誤り
GRANT SELECT ON foo*bar TO john -- 誤り
GRANT SELECT ON *suffix TO john -- 誤り
GRANT SELECT(foo) ON db.table* TO john -- 誤り

権限

権限とは、ユーザーに対して特定の種類のクエリの実行を許可するものです。

権限には階層構造があり、実行できるクエリの範囲は権限のスコープによって決まります。

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 クエリを実行できます。指定されたもの以外のカラムをユーザーが含めた場合、そのクエリはデータを返しません。

次の権限について考えてみましょう。

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

この権限により、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 クエリを実行できます。ユーザーが指定されたもの以外のカラムを含めた場合、そのクエリではデータは挿入されません。

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

付与された権限により、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 クエリを実行できます。

Syntaxsql
GRANT CLUSTER ON *.* TO <username>

デフォルトでは、ON CLUSTER を含むクエリを実行するには、ユーザーに CLUSTER 権限付与が必要です。 CLUSTER 権限付与を事前に行わずにクエリで ON CLUSTER を使おうとすると、次のエラーが発生します。

Not enough privileges. To execute this query, it's necessary to have the grant CLUSTER ON *.*.

デフォルトの動作は、config.xmlaccess_control_improvements セクションにある on_cluster_queries_require_cluster_grant 設定 (以下を参照) を false に設定することで変更できます。

config.xmlyaml
<access_control_improvements>
    <on_cluster_queries_require_cluster_grant>true</on_cluster_queries_require_cluster_grant>
</access_control_improvements>

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

例:

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

正規表現フィルターを使うことで、特定のソース URI へのアクセス権を付与できます。これにより、ユーザーがアクセスできる外部データソースをきめ細かく制御できます。

構文:

GRANT READ ON S3('regexp_pattern') TO user

この権限付与により、ユーザーは指定した正規表現パターンに一致する S3 URI からのみ読み取りできるようになります。

例:

特定の S3 バケットパスへのアクセスを許可します:

-- Allow user to read only from s3://foo/ paths
GRANT READ ON S3('s3://foo/.*') TO john

-- Allow user to read from specific file patterns
GRANT READ ON S3('s3://mybucket/data/2024/.*\.parquet') TO analyst

-- Multiple filters can be granted to the same user
GRANT READ ON S3('s3://foo/.*') TO john
GRANT READ ON S3('s3://bar/.*') TO john

GRANT OPTION を付けた再付与:

元の権限付与に WITH GRANT OPTION が含まれている場合は、GRANT CURRENT GRANTS を使用して再付与できます:

-- Original grant with GRANT OPTION
GRANT READ ON S3('s3://foo/.*') TO john WITH GRANT OPTION

-- John can now regrant this access to others
GRANT CURRENT GRANTS(READ ON S3) TO alice

重要な制限事項:

  • 部分的な取り消しはできません: 付与済みのフィルターパターンの一部だけを取り消すことはできません。必要な場合は、付与全体をいったん取り消したうえで、新しいパターンで再付与する必要があります。
  • ワイルドカードによる権限付与はできません: 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

ClickHouse Cloud ではサポートされていません

テーブル作成時に、指定したテーブルエンジンを使用できるようにします。テーブルエンジン に適用されます。

  • GRANT TABLE ENGINE ON * TO john
  • GRANT TABLE ENGINE ON TinyLog TO john

外部ソースを使用する一部のテーブルエンジンでは、対応するソースに対する READ/WRITE 権限が必要になる場合があります。SOURCES を参照してください。

たとえば、AzureBlobStorage テーブルエンジンでは、次の権限が必要になる場合があります。

  • GRANT READ, WRITE ON AZURE TO john

ALL

ClickHouse Cloud ではサポートされていません

規制対象エンティティに対するすべての権限を、ユーザーアカウントまたはロールに付与します。

NONE

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

ADMIN OPTION

ADMIN OPTION 権限があると、ユーザーは自身のロールを別のユーザーに付与できます。

Navigation