クエリの権限
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設定の任意の組み合わせで実行できます。