クエリの権限
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 TABLE
ヒントEXISTS、DESCRIBE、EXPLAIN、SHOW PROCESSLIST等のクエリは、システムテーブルから選択を行うため、SELECTと同等です。
可能な値:
- 0 — 読み取り、書き込み、設定変更のクエリが許可されます。
- 1 — 読み取りデータのクエリのみが許可されます。
- 2 — 読み取りデータおよび設定変更のクエリが許可されます。
デフォルト値:0
注記
readonly = 1に設定した後は、ユーザーは現在のセッションでreadonlyおよびallow_ddlの設定を変更できません。
HTTPインターフェースでGETメソッドを使用する場合、readonly = 1は自動的に設定されます。データを変更するには、POSTメソッドを使用してください。
readonly = 1を設定すると、ユーザーは設定を変更できなくなります。特定の設定だけを変更できないように制限する方法があります。また、readonly = 1制限下で特定の設定だけを変更できるようにする方法もあります。詳細については設定の制約を参照してください。
allow_ddl
DDLクエリを許可または拒否します。
可能な値:
- 0 — DDLクエリは許可されていません。
- 1 — DDLクエリは許可されています。
デフォルト値:1
注記
現在のセッションでallow_ddl = 0の場合、SET allow_ddl = 1を実行することはできません。
KILL QUERY
KILL QUERYは、readonlyおよびallow_ddl設定の任意の組み合わせで実行できます。