ClickHouse/docs/ja/sql-reference/statements/grant.md
2024-11-18 11:58:58 +09:00

30 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/sql-reference/statements/grant 38 GRANT

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{(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は、johnおよびrobinアカウントがサーバー上のすべてのデータベースのすべてのテーブルに対してINSERTおよびSELECTクエリを実行することを許可します。

ワイルドカード付与

権限を指定する際に、テーブルまたはデータベース名の代わりにアスタリスク(*)を使用することができます。たとえば、GRANT SELECT ON db.* TO johnクエリはjohndbデータベース内のすべてのテーブルに対してSELECTクエリを実行できるようにします。また、データベース名を省略することもできます。この場合、現在のデータベースに対して権限が付与されます。例えば、GRANT SELECT ON * TO johnは現在のデータベース内のすべてのテーブルに対する権限を付与し、GRANT SELECT ON mytable TO johnは現在のデータベース内のmytableテーブルに対する権限を付与します。

:::note 以下で説明する機能はClickHouseのバージョン24.10から利用可能です。 :::

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

もっと例を挙げると:

GRANT SELECT ON db.my_tables* TO john

SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted

SELECT * FROM db.other_table -- not_granted
SELECT * FROM db2.my_tables -- not_granted

GRANT SELECT ON db*.* TO john

SELECT * FROM db.my_tables -- granted
SELECT * FROM db.my_tables_0 -- granted
SELECT * FROM db.my_tables_1 -- granted
SELECT * FROM db.other_table -- granted
SELECT * FROM db2.my_tables -- granted

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

プレフィックスのみに対してアスタリスクを指定できます:

GRANT SELECT ON db.* TO john -- correct
GRANT SELECT ON db*.* TO john -- correct

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

権限

権限とは、特定の種類のクエリを実行する許可です。

権限には階層的構造があります。許可されたクエリのセットは権限のスコープに依存します。

権限の階層:

  • SELECT
  • INSERT
  • ALTER
    • ALTER TABLE
      • ALTER UPDATE
      • ALTER DELETE
      • ALTER COLUMN
        • ALTER ADD COLUMN
        • ALTER DROP COLUMN
        • ALTER MODIFY COLUMN
        • ALTER COMMENT COLUMN
        • ALTER CLEAR COLUMN
        • ALTER RENAME COLUMN
      • ALTER INDEX
        • ALTER ORDER BY
        • ALTER SAMPLE BY
        • ALTER ADD INDEX
        • ALTER DROP INDEX
        • ALTER MATERIALIZE INDEX
        • ALTER CLEAR INDEX
      • ALTER CONSTRAINT
        • ALTER ADD CONSTRAINT
        • ALTER DROP CONSTRAINT
      • ALTER TTL
        • ALTER MATERIALIZE TTL
      • ALTER SETTINGS
      • ALTER MOVE PARTITION
      • ALTER FETCH PARTITION
      • ALTER FREEZE PARTITION
    • ALTER VIEW
      • ALTER VIEW REFRESH
      • ALTER VIEW MODIFY QUERY
      • ALTER VIEW MODIFY SQL SECURITY
  • CREATE
    • CREATE DATABASE
    • CREATE TABLE
      • CREATE ARBITRARY TEMPORARY TABLE
        • CREATE TEMPORARY TABLE
    • CREATE VIEW
    • CREATE DICTIONARY
    • CREATE FUNCTION
  • DROP
    • DROP DATABASE
    • DROP TABLE
    • DROP VIEW
    • DROP DICTIONARY
    • DROP FUNCTION
  • TRUNCATE
  • OPTIMIZE
  • SHOW
    • SHOW DATABASES
    • SHOW TABLES
    • SHOW COLUMNS
    • SHOW DICTIONARIES
  • KILL QUERY
  • ACCESS MANAGEMENT
    • CREATE USER
    • ALTER USER
    • DROP USER
    • CREATE ROLE
    • ALTER ROLE
    • DROP ROLE
    • CREATE ROW POLICY
    • ALTER ROW POLICY
    • DROP ROW POLICY
    • CREATE QUOTA
    • ALTER QUOTA
    • DROP QUOTA
    • CREATE SETTINGS PROFILE
    • ALTER SETTINGS PROFILE
    • DROP SETTINGS PROFILE
    • SHOW ACCESS
      • SHOW_USERS
      • SHOW_ROLES
      • SHOW_ROW_POLICIES
      • SHOW_QUOTAS
      • SHOW_SETTINGS_PROFILES
    • ROLE ADMIN
  • SYSTEM
    • SYSTEM SHUTDOWN
    • SYSTEM DROP CACHE
      • SYSTEM DROP DNS CACHE
      • SYSTEM DROP MARK CACHE
      • SYSTEM DROP UNCOMPRESSED CACHE
    • SYSTEM RELOAD
      • SYSTEM RELOAD CONFIG
      • SYSTEM RELOAD DICTIONARY
        • SYSTEM RELOAD EMBEDDED DICTIONARIES
      • SYSTEM RELOAD FUNCTION
      • SYSTEM RELOAD FUNCTIONS
    • SYSTEM MERGES
    • SYSTEM TTL MERGES
    • SYSTEM FETCHES
    • SYSTEM MOVES
    • SYSTEM SENDS
      • SYSTEM DISTRIBUTED SENDS
      • SYSTEM REPLICATED SENDS
    • SYSTEM REPLICATION QUEUES
    • SYSTEM SYNC REPLICA
    • SYSTEM RESTART REPLICA
    • SYSTEM FLUSH
      • SYSTEM FLUSH DISTRIBUTED
      • SYSTEM FLUSH LOGS
    • CLUSTERaccess_control_improvements.on_cluster_queries_require_cluster_grant構成指令も参照)
  • INTROSPECTION
    • addressToLine
    • addressToLineWithInlines
    • addressToSymbol
    • demangle
  • SOURCES
    • AZURE
    • FILE
    • HDFS
    • HIVE
    • JDBC
    • KAFKA
    • MONGO
    • MYSQL
    • NATS
    • ODBC
    • POSTGRES
    • RABBITMQ
    • REDIS
    • REMOTE
    • S3
    • SQLITE
    • URL
  • dictGet
  • displaySecretsInShowAndSelect
  • NAMED COLLECTION ADMIN
    • CREATE NAMED COLLECTION
    • DROP NAMED COLLECTION
    • ALTER NAMED COLLECTION
    • SHOW NAMED COLLECTIONS
    • SHOW NAMED COLLECTIONS SECRETS
    • NAMED COLLECTION
  • TABLE ENGINE

この階層がどのように扱われるかの例:

  • ALTER権限は他のすべてのALTER*権限を含みます。
  • ALTER CONSTRAINTには、ALTER ADD CONSTRAINTおよびALTER DROP 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 TABLEINSERT、およびDROP TABLE権限が必要です。

SELECT

SELECTクエリの実行を許可します。

権限レベル:COLUMN

説明

この権限を持つユーザーは、指定されたテーブルおよびデータベース内の指定されたカラムのデータに対してSELECTクエリを実行できます。ユーザーが指定されていないカラムを含めると、クエリはデータを返しません。

以下の権限を考慮してください:

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

この権限は、johndb.tablexおよび/またはyカラムに関するデータを含む任意のSELECTクエリを実行できるようにします。たとえば、SELECT x FROM db.tablejohnSELECT 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 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 VIEW レベル: GROUP
      • ALTER VIEW REFRESH. レベル: VIEW. 別名: ALTER LIVE VIEW REFRESH, 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 CONSTRAINTおよびALTER DROP CONSTRAINT権限が含まれます。

注意事項

  • MODIFY SETTING権限はテーブルエンジン設定の変更を許可します。設定またはサーバー構成パラメータには影響しません。
  • ATTACH操作にはCREATE権限が必要です。
  • DETACH操作にはDROP権限が必要です。
  • KILL MUTATIONクエリでミューテーションを停止するには、このミューテーションを開始する権限が必要です。例えば、ALTER UPDATEクエリを停止する場合、ALTER UPDATEALTER TABLE、またはALTER権限が必要です。

CREATE

CREATEおよびATTACHDDLクエリの実行を以下の権限の階層に従って許可します

  • CREATE. レベル: GROUP
    • CREATE DATABASE. レベル: DATABASE
    • CREATE TABLE. レベル: TABLE
      • CREATE ARBITRARY TEMPORARY TABLE. レベル: GLOBAL
        • CREATE TEMPORARY TABLE. レベル: GLOBAL
    • CREATE VIEW. レベル: VIEW
    • CREATE DICTIONARY. レベル: DICTIONARY

注意事項

  • 作成したテーブルを削除するには、ユーザーはDROP権限が必要です。

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

SHOWDESCRIBEUSEおよびEXISTSクエリの実行を以下の権限の階層に従って許可します:

  • SHOW. レベル: GROUP
    • SHOW DATABASES. レベル: DATABASE. SHOW DATABASESSHOW CREATE DATABASEUSE <database>クエリを実行可能にします。
    • SHOW TABLES. レベル: TABLE. SHOW TABLESEXISTS <table>CHECK <table>クエリを実行可能にします。
    • SHOW COLUMNS. レベル: COLUMN. SHOW CREATE TABLEDESCRIBEクエリを実行可能にします。
    • SHOW DICTIONARIES. レベル: DICTIONARY. SHOW DICTIONARIESSHOW CREATE DICTIONARYEXISTS <dictionary>クエリを実行可能にします。

注意事項

ユーザーは指定されたテーブル、Dictionary、データベースに関する他の権限を持っている場合、SHOW権限を持っています。

KILL QUERY

KILLクエリの実行を以下の権限の階層に従って許可します:

権限レベル: GLOBAL.

注意事項

KILL QUERY権限は、あるユーザーが他のユーザーのクエリを停止することを許可します。

ACCESS MANAGEMENT

ユーザーがユーザー、ロール、および行ポリシーを管理するクエリを実行することを許可します。

  • 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権限は、ユーザーが他のユーザーに、ユーザーに付与されていない管理オプションを含むすべてのロールを割り当ておよび取り消すことを許可します。

SYSTEM

ユーザーがSYSTEMクエリを次の権限の階層に従って実行できるようにします。

  • SYSTEM. レベル: GROUP
    • SYSTEM SHUTDOWN. レベル: GLOBAL. 別名: SYSTEM KILL, SHUTDOWN
    • SYSTEM DROP CACHE. 別名: DROP CACHE
      • SYSTEM DROP DNS CACHE. レベル: GLOBAL. 別名: SYSTEM DROP DNS, DROP DNS CACHE, DROP DNS
      • SYSTEM DROP MARK CACHE. レベル: GLOBAL. 別名: SYSTEM DROP MARK, DROP MARK CACHE, DROP MARKS
      • SYSTEM DROP UNCOMPRESSED CACHE. レベル: GLOBAL. 別名: 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 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 FLUSH. レベル: GROUP
      • SYSTEM FLUSH DISTRIBUTED. レベル: TABLE. 別名: FLUSH DISTRIBUTED
      • SYSTEM FLUSH LOGS. レベル: GLOBAL. 別名: FLUSH LOGS

SYSTEM RELOAD EMBEDDED DICTIONARIES権限は、SYSTEM RELOAD DICTIONARY ON *.*権限で暗黙的に付与されます。

INTROSPECTION

introspection関数の使用を許可します。

  • INTROSPECTION. レベル: GROUP. 別名: INTROSPECTION FUNCTIONS
    • addressToLine. レベル: GLOBAL
    • addressToLineWithInlines. レベル: GLOBAL
    • addressToSymbol. レベル: GLOBAL
    • demangle. レベル: GLOBAL

SOURCES

外部データソースの使用を許可します。テーブルエンジンおよびテーブル関数に適用されます。

  • SOURCES. レベル: GROUP
    • AZURE. レベル: GLOBAL
    • FILE. レベル: GLOBAL
    • HDFS. レベル: GLOBAL
    • HIVE. レベル: GLOBAL
    • JDBC. レベル: GLOBAL
    • KAFKA. レベル: GLOBAL
    • MONGO. レベル: GLOBAL
    • MYSQL. レベル: GLOBAL
    • NATS. レベル: GLOBAL
    • ODBC. レベル: GLOBAL
    • POSTGRES. レベル: GLOBAL
    • RABBITMQ. レベル: GLOBAL
    • REDIS. レベル: GLOBAL
    • REMOTE. レベル: GLOBAL
    • S3. レベル: GLOBAL
    • SQLITE. レベル: GLOBAL
    • URL. レベル: GLOBAL

SOURCES権限は、すべてのソースの使用を許可します。また、各ソースに対して個別に権限を付与することもできます。ソースを使用するには、追加の権限が必要です。

例:

dictGet

  • dictGet. 別名: dictHas, dictGetHierarchy, dictIsIn

ユーザーがdictGetdictHasdictGetHierarchydictIsIn関数を実行することを許可します。

権限レベル: DICTIONARY.

  • GRANT dictGet ON mydb.mydictionary TO john
  • GRANT dictGet ON mydictionary TO john

displaySecretsInShowAndSelect

SHOWおよびSELECTクエリ内で秘密を表示することをユーザーに許可します。 display_secrets_in_show_and_selectサーバー設定 および format_display_secrets_in_show_and_selectフォーマット設定 の両方がオンになっている場合。

NAMED COLLECTION ADMIN

指定された命名コレクションに対する特定の操作を許可します。バージョン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

23.7では、GRANT NAMED COLLECTION以外のすべてのGRANTCREATE, DROP, ALTER, SHOWが追加され、23.7以降にのみGRANT NAMED COLLECTIONが追加されました。

命名コレクションがabcと呼ばれる場合、ユーザーjohnにCREATE NAMED COLLECTIONの権限を付与します。

  • GRANT CREATE NAMED COLLECTION ON abc TO john

TABLE ENGINE

テーブルを作成する際に指定されたテーブルエンジンを使用することを許可します。テーブルエンジンに適用されます。

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

ALL

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

NONE

いかなる権限も付与しません。

ADMIN OPTION

ADMIN OPTION権限は、ユーザーが自身のロールを他のユーザーに付与することを許可します。