クエリの権限
ClickHouseのクエリは以下のいくつかのタイプに分けられます。
- データ読み取りクエリ:
SELECT、SHOW、DESCRIBE、EXISTS - データ書き込みクエリ:
INSERT、OPTIMIZE - 設定変更クエリ:
SET、USE - DDL クエリ:
CREATE、ALTER、RENAME、ATTACH、DETACH、DROP、TRUNCATE KILL QUERY
以下の設定は、クエリのタイプによってユーザー権限を調整します。
readonly
データの読み取り、データの書き込み、および設定変更クエリに対する権限を制限します。
1に設定すると、以下が許可されます:
- 全てのタイプの読み取りクエリ(
SELECTや同等のクエリなど) - セッションコンテキストのみを変更するクエリ(
USEなど)
2に設定すると、上記に加えて以下も許可されます:
SETとCREATE TEMPORARY TABLETipEXISTS、DESCRIBE、EXPLAIN、SHOW PROCESSLISTなどのクエリは、システムテーブルからの選択を行うだけなので、SELECTと同等です。
可能な値:
- 0 — 読み取り、書き込み、設定変更クエリが許可されます。
- 1 — データ読み取りクエリのみが許可されます。
- 2 — データ読み取りおよび設定変更クエリが許可されます。
デフォルト値: 0
Note
readonly = 1 を設定した後、現在のセッションで readonly および allow_ddl の設定を変更することはできません。
HTTPインターフェースでGETメソッドを使用する場合、readonly = 1 が自動的に設定されます。データを変更するには、POSTメソッドを使用してください。
readonly = 1 を設定すると、ユーザーは設定を変更できなくなります。特定の設定のみの変更を禁止する方法もあります。また、readonly = 1 の制限下で特定の設定のみの変更を許可する方法もあります。詳細は設定の制約を参照してください。
allow_ddl
DDLクエリを許可または禁止します。
可能な値:
- 0 — DDLクエリは許可されません。
- 1 — DDLクエリは許可されます。
デフォルト値: 1
Note
現在のセッションで allow_ddl = 0 の場合、SET allow_ddl = 1 を実行することはできません。
KILL QUERY
KILL QUERY は、readonly と allow_ddl の設定のいかなる組み合わせでも実行可能です。