ClickHouse/docs/ja/operations/settings/permissions-for-queries.md
2024-11-18 11:58:58 +09:00

2.8 KiB

slug sidebar_position sidebar_label
/ja/operations/settings/permissions-for-queries 58 クエリの権限

クエリの権限

ClickHouseのクエリは以下のいくつかのタイプに分けられます。

  1. データ読み取りクエリ: SELECTSHOWDESCRIBEEXISTS
  2. データ書き込みクエリ: INSERTOPTIMIZE
  3. 設定変更クエリ: SETUSE
  4. DDL クエリ: CREATEALTERRENAMEATTACHDETACHDROPTRUNCATE
  5. KILL QUERY

以下の設定は、クエリのタイプによってユーザー権限を調整します。

readonly

データの読み取り、データの書き込み、および設定変更クエリに対する権限を制限します。

1に設定すると、以下が許可されます:

  • 全てのタイプの読み取りクエリ(SELECTや同等のクエリなど)
  • セッションコンテキストのみを変更するクエリ(USEなど)

2に設定すると、上記に加えて以下も許可されます:

  • SETCREATE TEMPORARY TABLE

    :::tip EXISTSDESCRIBEEXPLAINSHOW 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 を実行することはできません。 :::

:::note KILL QUERY KILL QUERY は、readonlyallow_ddl の設定のいかなる組み合わせでも実行可能です。 :::