このトピックでは、GRANT
ステートメントを実行して、ApsaraDB for ClickHouseの標準アカウントに権限を付与する方法について説明します。
前提条件
アカウントに権限を付与するクラスターは、ApsaraDB for ClickHouse Community互換Editionクラスターです。
データベースアカウントは、
GRANT
権限を持つ特権アカウントまたは標準アカウントです。
制限事項
GRANT
ステートメントを実行して、標準アカウントにDML権限のみを付与できます。
構文
GRANT [ON CLUSTER default]
priv_type [(column_list [,...])] [,...]
ON priv_level
TO {user | CURRENT_USER} [,...]
[WITH GRANT OPTION]
パラメーター
ON CLUSTER default
: すべてのノードで権限が付与されることを指定します。 値をON CLUSTER default
に設定します。priv_type
: 許可する権限の種類を指定します。 有効な値の詳細については、「特権」をご参照ください。colum_list
: オプションです。 パラメーター値を指定すると、指定した列に対して権限が付与されます。 パラメーター値を指定しない場合、すべての列に権限が付与されます。たとえば、
priv_type
パラメーターがSELECT
に設定され、column_list
パラメーターがnameに設定されている場合、アカウントにはname列に対するSELECT
権限が付与されます。priv_level
: 権限のレベルを指定します。*.*
: クラスターレベルを指定します。db_name.*
: データベースレベルを指定します。db_name.table_name
またはtable_name
: テーブルレベルを指定します。
WITH GRANT OPTION
:GRANT
権限をアカウントに付与することを指定します。 アカウントにGRANT
権限がある場合、アカウントは他のアカウントに権限を付与できます。
例
クラスタレベルの
すべて
の権限をaccount2に付与します。GRANT ON CLUSTER default all ON *.* TO 'account2';
ck_demoデータベースの
すべて
の権限をaccount3に付与します。GRANT ON CLUSTER default all ON ck_demo.* TO 'account3';
account1およびaccount2に
SELECT
およびINSERT
権限を付与します。GRANT ON CLUSTER default SELECT,INSERT ON *.* TO 'account1','account2'
Create USER
ステートメントを実行してアカウントを作成し、grant
ステートメントを実行して作成したアカウントに権限を付与します。アカウントを作成し、そのアカウントにクラスターレベルでDML権限を付与します。
CREATE USER 'test' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword1'; GRANT ON CLUSTER default INSERT,SELECT,ALTER,DROP on *.* to 'test';
アカウントを作成し、ck_demoデータベースに対するDML権限をアカウントに付与します。
CREATE USER 'test123' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword123'; GRANT ON CLUSTER default INSERT,SELECT,ALTER,DROP on ck_demo.* to 'test123';
アカウントを作成し、顧客テーブルのcustomer_idおよびgender列に対して
SELECT
権限を付与します。CREATE USER 'test321' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword321'; GRANT ON CLUSTER default SELECT (customer_id, gender) ON customer to 'test321';