GRANT ステートメント
- 特権 を ClickHouse ユーザーアカウントまたはロールに付与します。
- ユーザーアカウントまたは他のロールにロールを割り当てます。
特権を取り消すには、REVOKE ステートメントを使用します。また、SHOW GRANTS ステートメントを使用して、付与された特権のリストを表示することもできます。
特権付与構文
privilege— 特権の種類。role— ClickHouse ユーザーのロール。user— ClickHouse ユーザーアカウント。
WITH GRANT OPTION 句は、user または role に GRANT クエリを実行する権限を付与します。ユーザーは、自分が持っているものと同じ範囲またはそれ以下の特権を付与できます。
WITH REPLACE OPTION 句は、指定されていない場合、user または role の古い特権を新しい特権で置き換えます。
ロール割り当て構文
role— ClickHouse ユーザーのロール。user— ClickHouse ユーザーアカウント。
WITH ADMIN OPTION 句は、user または role に ADMIN OPTION の特権を付与します。
WITH REPLACE OPTION 句は、指定されていない場合、user または role の古いロールを新しいロールに置き換えます。
現在の特権付与構文
privilege— 特権の種類。role— ClickHouse ユーザーのロール。user— ClickHouse ユーザーアカウント。
CURRENT GRANTS ステートメントを使用すると、指定されたユーザーまたはロールにすべての特権を付与できます。
特権が指定されていない場合、そのユーザーまたはロールは CURRENT_USER に対してすべての利用可能な特権を受け取ります。
使用法
GRANT を使用するには、アカウントに GRANT OPTION の特権が必要です。ユーザーは、自分のアカウントの特権の範囲内でのみ特権を付与できます。
たとえば、管理者は次のクエリによって john アカウントに特権を付与しました。
これは、john が次のクエリを実行する権限を持っていることを意味します:
SELECT x,y FROM db.table。SELECT x FROM db.table。SELECT y FROM db.table。
john は SELECT z FROM db.table を実行できません。また、SELECT * FROM db.table も利用できません。このクエリを処理すると、ClickHouse はデータを返しません。例外的に、テーブルが x と y のカラムのみを含む場合、ClickHouse はすべてのデータを返します。
さらに、john には GRANT OPTION の特権があり、同じ範囲またはそれ以下の特権を持つ他のユーザーに特権を付与できます。
system データベースへのアクセスは常に許可されています(このデータベースはクエリ処理に使用されます)。
多くのシステムテーブルには、新しいユーザーがデフォルトでアクセスできるが、特権なしでデフォルトですべてのシステムテーブルにアクセスできるわけではありません。
また、特定のシステムテーブル(たとえば system.zookeeper)へのアクセスは、セキュリティ上の理由からクラウドユーザーに制限されています。
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 テーブルに特権を付与します。
以下に説明する機能は、バージョン 24.10 以降から利用可能です。
テーブル名やデータベース名の末尾にアスタリスクを置くこともできます。この機能では、テーブルパスの抽象的な接頭辞に特権を付与できます。
例:GRANT SELECT ON db.my_tables* TO john。このクエリは john に対して接頭辞が my_tables* の db データベース内のすべてのテーブルで SELECT クエリを実行することを許可します。
さらに例:
GRANT SELECT ON db.my_tables* TO john
GRANT SELECT ON db*.* TO john
付与されたパス内に新たに作成されたテーブルは、自動的に親からすべての特権を継承します。
たとえば、GRANT SELECT ON db.* TO john クエリを実行し、その後に新しいテーブル db.new_table を作成した場合、ユーザー john は SELECT * FROM db.new_table クエリを実行できるようになります。
接頭辞にはアスタリスクをのみ指定できます:
特権
特権は、特定の種類のクエリを実行するためにユーザーに与えられた権限です。
特権は階層構造を持ち、特権の範囲に応じて許可されるクエリのセットは異なります。
ClickHouse の特権の階層は以下の通りです:
ALLACCESS MANAGEMENTALLOW SQL SECURITY NONEALTER QUOTAALTER ROLEALTER ROW POLICYALTER SETTINGS PROFILEALTER USERCREATE QUOTACREATE ROLECREATE ROW POLICYCREATE SETTINGS PROFILECREATE USERDROP QUOTADROP ROLEDROP ROW POLICYDROP SETTINGS PROFILEDROP USERROLE ADMINSHOW ACCESSSHOW QUOTASSHOW ROLESSHOW ROW POLICIESSHOW SETTINGS PROFILESSHOW USERS
ALTERALTER DATABASEALTER DATABASE SETTINGS
ALTER TABLEALTER COLUMNALTER ADD COLUMNALTER CLEAR COLUMNALTER COMMENT COLUMNALTER DROP COLUMNALTER MATERIALIZE COLUMNALTER MODIFY COLUMNALTER RENAME COLUMN
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER DELETEALTER FETCH PARTITIONALTER FREEZE PARTITIONALTER INDEXALTER ADD INDEXALTER CLEAR INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER ORDER BYALTER SAMPLE BY
ALTER MATERIALIZE TTLALTER MODIFY COMMENTALTER MOVE PARTITIONALTER PROJECTIONALTER SETTINGSALTER STATISTICSALTER ADD STATISTICSALTER DROP STATISTICSALTER MATERIALIZE STATISTICSALTER MODIFY STATISTICS
ALTER TTLALTER UPDATE
ALTER VIEWALTER VIEW MODIFY QUERYALTER VIEW REFRESHALTER VIEW MODIFY SQL SECURITY
BACKUPCLUSTERCREATECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE DATABASECREATE DICTIONARYCREATE FUNCTIONCREATE RESOURCECREATE TABLECREATE VIEWCREATE WORKLOAD
dictGetdisplaySecretsInShowAndSelectDROPDROP DATABASEDROP DICTIONARYDROP FUNCTIONDROP RESOURCEDROP TABLEDROP VIEWDROP WORKLOAD
INSERTINTROSPECTIONaddressToLineaddressToLineWithInlinesaddressToSymboldemangle
KILL QUERYKILL TRANSACTIONMOVE PARTITION BETWEEN SHARDSNAMED COLLECTION ADMINALTER NAMED COLLECTIONCREATE NAMED COLLECTIONDROP NAMED COLLECTIONNAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS
OPTIMIZESELECTSET DEFINERSHOWSHOW COLUMNSSHOW DATABASESSHOW DICTIONARIESSHOW TABLES
SHOW FILESYSTEM CACHESSOURCESAZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
SYSTEMSYSTEM CLEANUPSYSTEM DROP CACHESYSTEM DROP COMPILED EXPRESSION CACHESYSTEM DROP CONNECTIONS CACHESYSTEM DROP DISTRIBUTED CACHESYSTEM DROP DNS CACHESYSTEM DROP FILESYSTEM CACHESYSTEM DROP FORMAT SCHEMA CACHESYSTEM DROP MARK CACHESYSTEM DROP MMAP CACHESYSTEM DROP PAGE CACHESYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP QUERY CACHESYSTEM DROP S3 CLIENT CACHESYSTEM DROP SCHEMA CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP REPLICASYSTEM FAILPOINTSYSTEM FETCHESSYSTEM FLUSHSYSTEM FLUSH ASYNC INSERT QUEUESYSTEM FLUSH LOGS
SYSTEM JEMALLOCSYSTEM KILL QUERYSYSTEM KILL TRANSACTIONSYSTEM LISTENSYSTEM LOAD PRIMARY KEYSYSTEM MERGESSYSTEM MOVESSYSTEM PULLING REPLICATION LOGSYSTEM REDUCE BLOCKING PARTSSYSTEM REPLICATION QUEUESSYSTEM REPLICA READINESSSYSTEM RESTART DISKSYSTEM RESTART REPLICASYSTEM RESTORE REPLICASYSTEM RELOADSYSTEM RELOAD ASYNCHRONOUS METRICSSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIESSYSTEM RELOAD FUNCTIONSYSTEM RELOAD MODELSYSTEM RELOAD USERS
SYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM SHUTDOWNSYSTEM SYNC DATABASE REPLICASYSTEM SYNC FILE CACHESYSTEM SYNC FILESYSTEM CACHESYSTEM SYNC REPLICASYSTEM SYNC TRANSACTION LOGSYSTEM THREAD FUZZERSYSTEM TTL MERGESSYSTEM UNFREEZESYSTEM UNLOAD PRIMARY KEYSYSTEM VIEWSSYSTEM VIRTUAL PARTS UPDATESYSTEM WAIT LOADING PARTS
TABLE ENGINETRUNCATEUNDROP TABLE
NONE
この階層がどのように扱われるかの例:
ALTER特権にはすべてのALTER*特権が含まれます。ALTER CONSTRAINTにはALTER ADD CONSTRAINTおよびALTER DROP CONSTRAINT特権が含まれます。
特権は異なるレベルで適用されます。レベルを知ることは、特権に利用可能な構文を示唆します。
レベル(下から上):
COLUMN— 特権はカラム、テーブル、データベース、または全体に対して付与することができます。TABLE— 特権はテーブル、データベース、または全体に対して付与することができます。VIEW— 特権はビュー、データベース、または全体に対して付与することができます。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 クエリを実行することができます。ユーザーが他のカラムを含めた場合、指定されたクエリはデータを返しません。
以下の特権を考慮してください:
この特権は john に対して db.table の x および/または y カラムからのデータを含む任意の SELECT クエリを実行することを許可します。たとえば、SELECT x FROM db.table。john は SELECT z FROM db.table を実行できません。SELECT * FROM db.table も利用できません。このクエリを処理すると、ClickHouse はデータを返しません。例外的に、テーブルが x と y のカラムのみを含む場合、ClickHouse はすべてのデータを返します。
INSERT
INSERT クエリを実行することを許可します。
特権レベル: COLUMN。
説明
この特権を付与されたユーザーは、指定されたテーブルおよびデータベース内の指定されたカラムのリストに対して INSERT クエリを実行することができます。ユーザーが他のカラムを含めた場合、指定されたクエリはデータを挿入しません。
例
付与された特権は 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 COLUMNALTER 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 INDEXALTER CONSTRAINT。レベル:GROUP。エイリアス:CONSTRAINTALTER ADD CONSTRAINT。レベル:TABLE。エイリアス:ADD CONSTRAINTALTER DROP CONSTRAINT。レベル:TABLE。エイリアス:DROP CONSTRAINTALTER TTL。レベル:TABLE。エイリアス:ALTER MODIFY TTL,MODIFY TTLALTER MATERIALIZE TTL。レベル:TABLE。エイリアス:MATERIALIZE TTLALTER 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 PARTITIONALTER 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特権が必要です。
BACKUP
[BACKUP] のクエリを実行することを許可します。バックアップに関する詳細については、「バックアップと復元」を参照してください。
CREATE
CREATE および ATTACH DDL クエリを以下の階層構造に基づいて実行することを許可します:
CREATE。レベル:GROUPCREATE DATABASE。レベル:DATABASECREATE TABLE。レベル:TABLECREATE ARBITRARY TEMPORARY TABLE。レベル:GLOBALCREATE TEMPORARY TABLE。レベル:GLOBAL
CREATE VIEW。レベル:VIEWCREATE DICTIONARY。レベル:DICTIONARY
注意点
- 作成したテーブルを削除するには、ユーザーは DROP 特権が必要です。
CLUSTER
ON CLUSTER クエリを実行することを許可します。
デフォルトでは、ON CLUSTER が付いたクエリはユーザーに CLUSTER の付与を要求します。
CLUSTER 特権を付与せずにクエリで ON CLUSTER を使用しようとすると、次のエラーが表示されます:
デフォルトの動作は、設定 access_control_improvements セクションの on_cluster_queries_require_cluster_grant 設定を false にすることで変更できます。
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>クエリを実行することを許可します。
注意点
ユーザーが指定されたテーブル、辞書、またはデータベースに関連する特権を持っている場合、そのユーザーは SHOW 特権を持っています。
KILL QUERY
KILL クエリを以下の階層構造に基づいて実行することを許可します:
特権レベル: GLOBAL。
注意点
KILL QUERY 特権は、あるユーザーが他のユーザーのクエリを停止することを許可します。
アクセス管理
ユーザー、ロール、および行ポリシを管理するクエリを実行できるようにします。
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。レベル: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。レベル:GROUP。エイリアス:INTROSPECTION FUNCTIONSaddressToLine。レベル:GLOBALaddressToLineWithInlines。レベル:GLOBALaddressToSymbol。レベル:GLOBALdemangle。レベル:GLOBAL
SOURCES
外部データソースの使用を許可します。これは、テーブルエンジン および テーブル関数 に適用されます。
READ。レベル:GLOBAL_WITH_PARAMETERWRITE。レベル:GLOBAL_WITH_PARAMETER
利用可能なパラメータ:
AZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
データソースの読み取り/書き込みの特権に対する分離は、バージョン 25.7 から利用可能で、サーバー設定 access_control_improvements.enable_read_write_grants を有効にする必要があります。
それ以外の場合、GRANT AZURE ON *.* TO user 構文を使用する必要があります。これは新しい GRANT READ, WRITE ON AZURE TO user に相当します。
例:
- MySQL テーブルエンジンを使用してテーブルを作成するには、
CREATE TABLE (ON db.table_name)およびMYSQLの特権が必要です。 - mysql テーブル関数 を使用するには、
CREATE TEMPORARY TABLEとMYSQLの特権が必要です。
ソースフィルター特権
この機能は、バージョン 25.8 以降およびサーバー設定 access_control_improvements.enable_read_write_grants のみで利用可能です。
正規表現フィルターを使用して特定のソース URI へのアクセスを付与できます。これにより、ユーザーがアクセスできる外部データソースの詳細な制御が可能になります。
構文:
この特権は、指定された正規表現パターンに一致する S3 URI からのみ読み取ることをユーザーに許可します。
例:
特定の S3 バケットパスへのアクセスを付与:
GRANT OPTION での再付与:
元の特権に WITH GRANT OPTION がある場合、それを使用して GRANT CURRENT GRANTS で再付与できます:
重要な制限:
- 部分的取り消しは許可されていません: 付与されたフィルターパターンの一部を取り消すことはできません。必要に応じて全体を取り消し、新しいパターンで再付与する必要があります。
- ワイルドカード付与は許可されていません:
GRANT READ ON *('regexp')またはそのようなワイルドカード専用パターンを使用することはできません。特定のソースを指定する必要があります。
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
他のすべての特権(CREATE、DROP、ALTER、SHOW)とは異なり、NAMED COLLECTION の付与は 23.7 でのみ追加され、他のものは以前の 22.12 に追加されました。
例
名前付きコレクションが 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
規制されたエンティティに対するすべての特権をユーザーアカウントまたはロールに付与します。
特権 ALL は ClickHouse Cloud ではサポートされておらず、default ユーザーには制限付きの権限があります。ユーザーは default_role を付与することで最大限の権限をユーザーに与えることができます。詳細については こちら を参照してください。
ユーザーは、デフォルトのユーザーとして GRANT CURRENT GRANTS を使って、ALL と同様の効果を得ることもできます。
NONE
特権を付与しません。
ADMIN OPTION
ADMIN OPTION 特権は、ユーザーが自分のロールを別のユーザーに付与できるようにします。