この Topic では、GRANT 文を使用して ApsaraDB for ClickHouse の標準アカウントに権限を付与する方法について説明します。
前提条件
データベースアカウントが、特権アカウントまたは 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: 付与する権限の種類を指定します。詳細については、「権限」をご参照ください。column_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 にクラスターレベルで
all権限を付与します。GRANT ON CLUSTER default all ON *.* TO 'account2';account3 に ck_demo データベースに対する
all権限を付与します。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 テーブルの 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';