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またはroleにGRANTクエリを実行する権限を付与します。ユーザーは自分が持つ範囲とそれ以下の権限を付与することができます。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またはroleにADMIN 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.tableSELECT x FROM db.tableSELECT y FROM db.table
johnはSELECT z FROM db.tableを実行することはできません。また、SELECT * FROM db.tableも利用できません。このクエリを処理する際、ClickHouseはデータを返さず、xやyも返されません。唯一の例外はテーブルがxとyカラムのみを含む場合であり、この場合、ClickHouseはすべてのデータを返します。
また、johnはGRANT OPTION権限を持っているため、他のユーザーに対して同じまたは少ない範囲の権限を付与することができます。
systemデータベースへのアクセスは常に許可されています(クエリ処理のためにこのデータベースが使用されます)。
1つのクエリで複数の権限を複数のアカウントに付与することができます。クエリGRANT SELECT, INSERT ON *.* TO john, robinは、johnおよびrobinアカウントがサーバー上のすべてのデータベースのすべてのテーブルに対してINSERTおよびSELECTクエリを実行することを許可します。
ワイルドカード付与
権限を指定する際に、テーブルまたはデータベース名の代わりにアスタリスク(*)を使用することができます。たとえば、GRANT SELECT ON db.* TO johnクエリはjohnがdbデータベース内のすべてのテーブルに対してSELECTクエリを実行できるようにします。また、データベース名を省略することもできます。この場合、現在のデータベースに対して権限が付与されます。例えば、GRANT SELECT ON * TO johnは現在のデータベース内のすべてのテーブルに対する権限を付与し、GRANT SELECT ON mytable TO johnは現在のデータベース内のmytableテーブルに対する権限を付与します。
以下で説明する機能はClickHouseのバージョン24.10から利用可能です。
テーブルまたはデータベース名の末尾にアスタリスクを付けることもできます。この機能により、テーブルのパスの抽象的なプレフィックスに対して権限を付与することができます。例:GRANT SELECT ON db.my_tables* TO john。このクエリは、dbデータベースのすべてのmy_tablesプレフィックスを持つテーブルに対してjohnがSELECTクエリを実行できるようにします。
もっと例を挙げると:
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を作成した場合、ユーザーjohnはSELECT * 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 TABLEALTER UPDATEALTER DELETEALTER COLUMNALTER ADD COLUMNALTER DROP COLUMNALTER MODIFY COLUMNALTER COMMENT COLUMNALTER CLEAR COLUMNALTER RENAME COLUMN
ALTER INDEXALTER ORDER BYALTER SAMPLE BYALTER ADD INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER CLEAR INDEX
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER TTLALTER MATERIALIZE TTL
ALTER SETTINGSALTER MOVE PARTITIONALTER FETCH PARTITIONALTER FREEZE PARTITION
ALTER VIEWALTER VIEW REFRESHALTER VIEW MODIFY QUERYALTER VIEW MODIFY SQL SECURITY
- CREATE
CREATE DATABASECREATE TABLECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE VIEWCREATE DICTIONARYCREATE FUNCTION
- DROP
DROP DATABASEDROP TABLEDROP VIEWDROP DICTIONARYDROP FUNCTION
- TRUNCATE
- OPTIMIZE
- SHOW
SHOW DATABASESSHOW TABLESSHOW COLUMNSSHOW DICTIONARIES
- KILL QUERY
- ACCESS MANAGEMENT
CREATE USERALTER USERDROP USERCREATE ROLEALTER ROLEDROP ROLECREATE ROW POLICYALTER ROW POLICYDROP ROW POLICYCREATE QUOTAALTER QUOTADROP QUOTACREATE SETTINGS PROFILEALTER SETTINGS PROFILEDROP SETTINGS PROFILESHOW ACCESSSHOW_USERSSHOW_ROLESSHOW_ROW_POLICIESSHOW_QUOTASSHOW_SETTINGS_PROFILES
ROLE ADMIN
- SYSTEM
SYSTEM SHUTDOWNSYSTEM DROP CACHESYSTEM DROP DNS CACHESYSTEM DROP MARK CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM RELOADSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIES
SYSTEM RELOAD FUNCTIONSYSTEM RELOAD FUNCTIONS
SYSTEM MERGESSYSTEM TTL MERGESSYSTEM FETCHESSYSTEM MOVESSYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM REPLICATION QUEUESSYSTEM SYNC REPLICASYSTEM RESTART REPLICASYSTEM FLUSHSYSTEM FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS
CLUSTER(access_control_improvements.on_cluster_queries_require_cluster_grant構成指令も参照)
- INTROSPECTION
addressToLineaddressToLineWithInlinesaddressToSymboldemangle
- SOURCES
AZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
- dictGet
- displaySecretsInShowAndSelect
- NAMED COLLECTION ADMIN
CREATE NAMED COLLECTIONDROP NAMED COLLECTIONALTER NAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETSNAMED 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 userGRANT SELECT ON db.* TO user
許可されない構文の例:
GRANT CREATE USER(x) ON db.table TO userGRANT CREATE USER ON db.* TO user
特別な権限ALLは、全ての権限をユーザーアカウントまたはロールに付与します。
デフォルトでは、ユーザーアカウントまたはロールには権限がありません。
ユーザーまたはロールが権限を持たない場合、NONE権限として表示されます。
いくつかのクエリはその実装上、権限のセットを必要とします。たとえば、RENAMEクエリを実行するには、SELECT、CREATE TABLE、INSERT、およびDROP TABLE権限が必要です。
SELECT
SELECTクエリの実行を許可します。
権限レベル:COLUMN。
説明
この権限を持つユーザーは、指定されたテーブルおよびデータベース内の指定されたカラムのデータに対してSELECTクエリを実行できます。ユーザーが指定されていないカラムを含めると、クエリはデータを返しません。
以下の権限を考慮してください:
GRANT SELECT(x,y) ON db.table TO john
この権限は、johnがdb.tableのxおよび/またはyカラムに関するデータを含む任意のSELECTクエリを実行できるようにします。たとえば、SELECT x FROM db.table。johnはSELECT z FROM db.tableを実行することはできません。SELECT * FROM db.tableも利用できません。このクエリを処理する際、ClickHouseはデータを返さず、xやyも返されません。唯一の例外はテーブルがxとyカラムのみを含む場合であり、この場合、ClickHouseはすべてのデータを返します。
INSERT
INSERTクエリの実行を許可します。
権限レベル:COLUMN。
説明
この権限を持つユーザーは、指定されたテーブルおよびデータベースの指定されたカラムに対してINSERTクエリを実行できます。ユーザーが指定されていないカラムを含めると、クエリはデータを挿入しません。
例
GRANT INSERT(x,y) ON db.table TO john
付与された権限は、johnがdb.tableのxおよび/またはyカラムにデータを挿入できるようにします。
ALTER
ALTERクエリの実行を、以下の権限の階層に従って許可します:
ALTER. レベル:COLUMN.ALTER TABLE. レベル:GROUPALTER UPDATE. レベル:COLUMN. 別名:UPDATEALTER DELETE. レベル:COLUMN. 別名:DELETEALTER COLUMN. レベル:GROUPALTER ADD COLUMN. レベル:COLUMN. 別名:ADD COLUMNALTER DROP COLUMN. レベル:COLUMN. 別名:DROP COLUMNALTER MODIFY COLUMN. レベル:COLUMN. 別名:MODIFY COLUMNALTER COMMENT COLUMN. レベル:COLUMN. 別名:COMMENT COLUMNALTER CLEAR COLUMN. レベル:COLUMN. 別名:CLEAR COLUMNALTER RENAME COLUMN. レベル:COLUMN. 別名:RENAME COLUMN
ALTER INDEX. レベル:GROUP. 別名:INDEXALTER ORDER BY. レベル:TABLE. 別名:ALTER MODIFY ORDER BY,MODIFY ORDER BYALTER SAMPLE BY. レベル:TABLE. 別名:ALTER MODIFY SAMPLE BY,MODIFY SAMPLE BYALTER ADD INDEX. レベル:TABLE. 別名:ADD INDEXALTER DROP INDEX. レベル:TABLE. 別名:DROP INDEXALTER MATERIALIZE INDEX. レベル:TABLE. 別名:MATERIALIZE INDEXALTER CLEAR INDEX. レベル:TABLE. 別名:CLEAR INDEX
ALTER CONSTRAINT. レベル:GROUP. 別名:CONSTRAINTALTER ADD CONSTRAINT. レベル:TABLE. 別名:ADD CONSTRAINTALTER DROP CONSTRAINT. レベル:TABLE. 別名:DROP CONSTRAINT
ALTER TTL. レベル:TABLE. 別名:ALTER MODIFY TTL,MODIFY TTLALTER MATERIALIZE TTL. レベル:TABLE. 別名:MATERIALIZE TTL
ALTER SETTINGS. レベル:TABLE. 別名:ALTER SETTING,ALTER MODIFY SETTING,MODIFY SETTINGALTER MOVE PARTITION. レベル:TABLE. 別名:ALTER MOVE PART,MOVE PARTITION,MOVE PARTALTER FETCH PARTITION. レベル:TABLE. 別名:ALTER FETCH PART,FETCH PARTITION,FETCH PARTALTER FREEZE PARTITION. レベル:TABLE. 別名:FREEZE PARTITION
ALTER VIEWレベル:GROUPALTER VIEW REFRESH. レベル:VIEW. 別名:ALTER LIVE VIEW REFRESH,REFRESH VIEWALTER VIEW MODIFY QUERY. レベル:VIEW. 別名:ALTER TABLE MODIFY QUERYALTER 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 UPDATE、ALTER TABLE、またはALTER権限が必要です。
CREATE
CREATEおよびATTACHDDLクエリの実行を以下の権限の階層に従って許可します:
CREATE. レベル:GROUPCREATE DATABASE. レベル:DATABASECREATE TABLE. レベル:TABLECREATE ARBITRARY TEMPORARY TABLE. レベル:GLOBALCREATE TEMPORARY TABLE. レベル:GLOBAL
CREATE VIEW. レベル:VIEWCREATE DICTIONARY. レベル:DICTIONARY
注意事項
- 作成したテーブルを削除するには、ユーザーはDROP権限が必要です。
DROP
DROPおよびDETACHクエリの実行を以下の権限の階層に従って許可します:
DROP. レベル:GROUPDROP DATABASE. レベル:DATABASEDROP TABLE. レベル:TABLEDROP VIEW. レベル:VIEWDROP DICTIONARY. レベル:DICTIONARY
TRUNCATE
TRUNCATEクエリの実行を許可します。
権限レベル: TABLE.
OPTIMIZE
OPTIMIZE TABLEクエリの実行を許可します。
権限レベル: TABLE.
SHOW
SHOW、DESCRIBE、USEおよびEXISTSクエリの実行を以下の権限の階層に従って許可します:
SHOW. レベル:GROUPSHOW DATABASES. レベル:DATABASE.SHOW DATABASES、SHOW CREATE DATABASE、USE <database>クエリを実行可能にします。SHOW TABLES. レベル:TABLE.SHOW TABLES、EXISTS <table>、CHECK <table>クエリを実行可能にします。SHOW COLUMNS. レベル:COLUMN.SHOW CREATE TABLE、DESCRIBEクエリを実行可能にします。SHOW DICTIONARIES. レベル:DICTIONARY.SHOW DICTIONARIES、SHOW CREATE DICTIONARY、EXISTS <dictionary>クエリを実行可能にします。
注意事項
ユーザーは指定されたテーブル、Dictionary、データベースに関する他の権限を持っている場合、SHOW権限を持っています。
KILL QUERY
KILLクエリの実行を以下の権限の階層に従って許可します:
権限レベル: GLOBAL.
注意事項
KILL QUERY権限は、あるユーザーが他のユーザーのクエリを停止することを許可します。
ACCESS MANAGEMENT
ユーザーがユーザー、ロール、および行ポリシーを管理するクエリを実行することを許可します。
ACCESS MANAGEMENT. レベル:GROUPCREATE USER. レベル:GLOBALALTER USER. レベル:GLOBALDROP USER. レベル:GLOBALCREATE ROLE. レベル:GLOBALALTER ROLE. レベル:GLOBALDROP ROLE. レベル:GLOBALROLE ADMIN. レベル:GLOBALCREATE ROW POLICY. レベル:GLOBAL. 別名:CREATE POLICYALTER ROW POLICY. レベル:GLOBAL. 別名:ALTER POLICYDROP ROW POLICY. レベル:GLOBAL. 別名:DROP POLICYCREATE QUOTA. レベル:GLOBALALTER QUOTA. レベル:GLOBALDROP QUOTA. レベル:GLOBALCREATE SETTINGS PROFILE. レベル:GLOBAL. 別名:CREATE PROFILEALTER SETTINGS PROFILE. レベル:GLOBAL. 別名:ALTER PROFILEDROP SETTINGS PROFILE. レベル:GLOBAL. 別名:DROP PROFILESHOW ACCESS. レベル:GROUPSHOW_USERS. レベル:GLOBAL. 別名:SHOW CREATE USERSHOW_ROLES. レベル:GLOBAL. 別名:SHOW CREATE ROLESHOW_ROW_POLICIES. レベル:GLOBAL. 別名:SHOW POLICIES,SHOW CREATE ROW POLICY,SHOW CREATE POLICYSHOW_QUOTAS. レベル:GLOBAL. 別名:SHOW CREATE QUOTASHOW_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. レベル:GROUPSYSTEM SHUTDOWN. レベル:GLOBAL. 別名:SYSTEM KILL,SHUTDOWNSYSTEM DROP CACHE. 別名:DROP CACHESYSTEM DROP DNS CACHE. レベル:GLOBAL. 別名:SYSTEM DROP DNS,DROP DNS CACHE,DROP DNSSYSTEM DROP MARK CACHE. レベル:GLOBAL. 別名:SYSTEM DROP MARK,DROP MARK CACHE,DROP MARKSSYSTEM DROP UNCOMPRESSED CACHE. レベル:GLOBAL. 別名:SYSTEM DROP UNCOMPRESSED,DROP UNCOMPRESSED CACHE,DROP UNCOMPRESSED
SYSTEM RELOAD. レベル:GROUPSYSTEM RELOAD CONFIG. レベル:GLOBAL. 別名:RELOAD CONFIGSYSTEM RELOAD DICTIONARY. レベル:GLOBAL. 別名:SYSTEM RELOAD DICTIONARIES,RELOAD DICTIONARY,RELOAD DICTIONARIESSYSTEM RELOAD EMBEDDED DICTIONARIES. レベル:GLOBAL. 別名:RELOAD EMBEDDED DICTIONARIES
SYSTEM MERGES. レベル:TABLE. 別名:SYSTEM STOP MERGES,SYSTEM START MERGES,STOP MERGES,START MERGESSYSTEM TTL MERGES. レベル:TABLE. 別名:SYSTEM STOP TTL MERGES,SYSTEM START TTL MERGES,STOP TTL MERGES,START TTL MERGESSYSTEM FETCHES. レベル:TABLE. 別名:SYSTEM STOP FETCHES,SYSTEM START FETCHES,STOP FETCHES,START FETCHESSYSTEM MOVES. レベル:TABLE. 別名:SYSTEM STOP MOVES,SYSTEM START MOVES,STOP MOVES,START MOVESSYSTEM SENDS. レベル:GROUP. 別名:SYSTEM STOP SENDS,SYSTEM START SENDS,STOP SENDS,START SENDSSYSTEM DISTRIBUTED SENDS. レベル:TABLE. 別名:SYSTEM STOP DISTRIBUTED SENDS,SYSTEM START DISTRIBUTED SENDS,STOP DISTRIBUTED SENDS,START DISTRIBUTED SENDSSYSTEM 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 QUEUESSYSTEM SYNC REPLICA. レベル:TABLE. 別名:SYNC REPLICASYSTEM RESTART REPLICA. レベル:TABLE. 別名:RESTART REPLICASYSTEM FLUSH. レベル:GROUPSYSTEM FLUSH DISTRIBUTED. レベル:TABLE. 別名:FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS. レベル:GLOBAL. 別名:FLUSH LOGS
SYSTEM RELOAD EMBEDDED DICTIONARIES権限は、SYSTEM RELOAD DICTIONARY ON *.*権限で暗黙的に付与されます。
INTROSPECTION
introspection関数の使用を許可します。
INTROSPECTION. レベル:GROUP. 別名:INTROSPECTION FUNCTIONSaddressToLine. レベル:GLOBALaddressToLineWithInlines. レベル:GLOBALaddressToSymbol. レベル:GLOBALdemangle. レベル:GLOBAL
SOURCES
外部データソースの使用を許可します。テーブルエンジンおよびテーブル関数に適用されます。
SOURCES. レベル:GROUPAZURE. レベル:GLOBALFILE. レベル:GLOBALHDFS. レベル:GLOBALHIVE. レベル:GLOBALJDBC. レベル:GLOBALKAFKA. レベル:GLOBALMONGO. レベル:GLOBALMYSQL. レベル:GLOBALNATS. レベル:GLOBALODBC. レベル:GLOBALPOSTGRES. レベル:GLOBALRABBITMQ. レベル:GLOBALREDIS. レベル:GLOBALREMOTE. レベル:GLOBALS3. レベル:GLOBALSQLITE. レベル:GLOBALURL. レベル:GLOBAL
SOURCES権限は、すべてのソースの使用を許可します。また、各ソースに対して個別に権限を付与することもできます。ソースを使用するには、追加の権限が必要です。
例:
- MySQLテーブルエンジンを使用してテーブルを作成するには、
CREATE TABLE (ON db.table_name)およびMYSQL権限が必要です。 - mysqlテーブル関数を使用するには、
CREATE TEMPORARY TABLEおよびMYSQL権限が必要です。
dictGet
dictGet. 別名:dictHas,dictGetHierarchy,dictIsIn
ユーザーがdictGet、dictHas、dictGetHierarchy、dictIsIn関数を実行することを許可します。
権限レベル: DICTIONARY.
例
GRANT dictGet ON mydb.mydictionary TO johnGRANT 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 CONTROLCREATE NAMED COLLECTION. レベル:NAMED_COLLECTIONDROP NAMED COLLECTION. レベル:NAMED_COLLECTIONALTER NAMED COLLECTION. レベル:NAMED_COLLECTIONSHOW NAMED COLLECTIONS. レベル:NAMED_COLLECTION. 別名:SHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS. レベル:NAMED_COLLECTION. 別名:SHOW NAMED COLLECTIONS SECRETSNAMED COLLECTION. レベル:NAMED_COLLECTION. 別名:NAMED COLLECTION USAGE, USE NAMED COLLECTION
23.7では、GRANT NAMED COLLECTION以外のすべてのGRANT(CREATE, 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 johnGRANT TABLE ENGINE ON TinyLog TO john
ALL
規制対象エンティティに対するすべての権限をユーザーアカウントまたはロールに付与します。
NONE
いかなる権限も付与しません。
ADMIN OPTION
ADMIN OPTION権限は、ユーザーが自身のロールを他のユーザーに付与することを許可します。