クラスター内のデータベースユーザーを管理する
このトピックでは、CelerData でのユーザー、ロール、および権限の管理方法について説明します。
CelerData は、ロールベースのアクセス制御 (RBAC) とアイデンティティベースのアクセス制御 (IBAC) の両方を採用しており、CelerData クラスター内の権限を管理します。これにより、クラスター管理者は異なる粒度レベルでクラスター内の権限を簡単に制限できます。
CelerData クラスター内では、権限はユーザーまたはロールに付与できます。ロールは、必要に応じてクラスター内のユーザーまたは他のロールに割り当てられる権限の集合です。ユーザーには 1 つ以上のロールを付与でき、それにより異なるオブジェクトに対する権限が決まります。
ユーザーを管理する
システム定義のロール user_admin を持つユーザーは、CelerData クラスター内でユーザーを作成、変更、削除できます。
新しいクラスターがデプロイされると、デプロイ時に定義されたパスワードを持つ admin ユーザーが自動的に作成されます。この admin ユーザーは削除できず、システム定義のロール user_admin および db_admin を付与されるため、実質的にクラスターのデフォルトのスーパーユーザーとなります。
NOTE
- クラスターへのログインに使用するユーザーは、CelerData Cloud BYOC コンソールへのログインに使用するユーザーとは異なります。
adminユーザーを除き、他のすべてのクラスターユーザーは、SQL ステートメントを実行してクラスター内で手動で作成する必要があります。
ユーザーを作成する
ユーザー名、認証方法、およびデフォルトロールを指定してユーザーを作成できます。ユーザーの作成に関する詳細情報と高度な手順については、CREATE USER を参照してください。
次の例では、ユーザー jack を作成し、パスワードを 12345 に設定し、デフォルトロールとして example_role を割り当てます。
CREATE USER jack IDENTIFIED BY '12345' DEFAULT ROLE 'example_role';
ユーザーを変更する
ユーザーのパスワードまたはプロパティを変更できます。
ユーザーのデフォルトロールは、ユーザーが CelerData に接続すると自動的にアクティブ化されます。
ユーザーのプロパティを変更する
ALTER USER を使用して、ユーザーのプロパティを設定できます。
次の例では、ユーザー jack の最大接続数を 1000 に設定します。
SET PROPERTY FOR jack 'max_user_connections' = '1000';
ユーザーのパスワードをリセットする
SET PASSWORD または ALTER USER を使用して、ユーザーのパスワードをリセットできます。
NOTE
- クラスタ内の一般ユーザーのパスワードをリセットできるのは、クラスタの
adminユーザーのみです。adminユーザーのパスワードをリセットするには、adminユーザーのパスワードをリセットする を参照してください。
次の例はどちらも、jack のパスワードを 54321 にリセットします。
-
SET PASSWORD を使用してパスワードをリセットする:
SET PASSWORD FOR jack = PASSWORD('54321'); -
ALTER USER を使用してパスワードをリセットする:
ALTER USER jack IDENTIFIED BY '54321';
admin ユーザーのパスワードをリセットする
adminユーザーのパスワードを紛失し、クラスターに接続できない場合、CelerData Cloud BYOCコンソールでのみパスワードをリセットできます。
NOTE
クラスターの
adminユーザーのパスワードをリセットできるのは、そのクラスターに対して Edit cluster 権限を持つ CelerData メンバーのみです。
以下の手順に従ってください:
-
CelerData Cloud BYOC コンソール にサインインします。
-
Clusters ページで、
adminユーザーのパスワードをリセットする対象のクラスターをクリックします。 -
クラスターの詳細ページで、Manage をクリックし、Reset password を選択します。
-
表示されるダイアログボックスで、
adminユーザーの新パスワードを入力するか、Generate password をクリックしてランダムなパスワードを生成します。 -
Reset & Save をクリックして新パスワードを保存します。
ユーザーを削除する
DROP USER を使用してユーザーを削除できます。
次の例では、ユーザー jack を削除します。
DROP USER jack;
ロールを管理する
システム定義のロール user_admin を持つユーザーは、CelerData クラスター内でロールを作成、付与、取り消し、削除できます。
ロールを作成する
CREATE ROLE を使用してロールを作成できます。
次の例では、ロール example_role を作成します。
CREATE ROLE example_role;
ロールを付与する
GRANT を使用して、ユーザーまたは他のロールにロールを付与できます。
-
ユーザーにロールを付与する。
次の例では、ユーザー
jackにロールexample_roleを付与します。GRANT example_role TO USER jack; -
他のロールにロールを付与する。
次の例では、ロール
test_roleにロールexample_roleを付与します。GRANT example_role TO ROLE test_role;
ロールを取り消す
REVOKE を使用して、ユーザーまたは他のロールからロールを取り消すことができます。
NOTE
システム定義のデフォルトロール
PUBLICをユーザーから取り消すことはできません。
-
ユーザーからロールを取り消す。
次の例では、ユーザー
jackからロールexample_roleを取り消します。REVOKE example_role FROM USER jack; -
他のロールからロールを取り消す。
次の例では、ロール
test_roleからロールexample_roleを取り消します。REVOKE example_role FROM ROLE test_role;
ロールを削除する
DROP ROLE を使用してロールを削除できます。
次の例では、ロール example_role を削除します。
DROP ROLE example_role;
CAUTION
システム定義のロールは削除できません。
権限を管理する
システム定義のロール user_admin を持つユーザーは、CelerData クラスター内で権限を付与または取り消すことができます。
権限を付与する
GRANT を使用して、ユーザーまたはロールに権限を付与できます。
-
ユーザーに権限を付与する。
次の例では、テーブル
sr_memberに対する SELECT 権限をユーザーjackに付与し、jackがこの権限を他のユーザーまたはロールに付与できるようにします(SQL 文で WITH GRANT OPTION を指定することにより)。GRANT SELECT ON TABLE sr_member TO USER jack WITH GRANT OPTION; -
ロールに権限を付与する。
次の例では、テーブル
sr_memberに対する SELECT 権限をロールexample_roleに付与します。GRANT SELECT ON TABLE sr_member TO ROLE example_role;
権限を取り消す
REVOKE を使用して、ユーザーまたはロールから権限を取り消すことができます。
-
ユーザーから権限を取り消す。
次の例では、テーブル
sr_memberに対する SELECT 権限をユーザーjackから取り消し、jackがこの権限を他のユーザーまたはロールに付与できないようにします。REVOKE SELECT ON TABLE sr_member FROM USER jack; -
ロールから権限を取り消す。
次の例では、テーブル
sr_memberに対する SELECT 権限をロールexample_roleから取り消します。REVOKE SELECT ON TABLE sr_member FROM ROLE example_role;
ユーザーとロールの情報を表示する
システム定義のロール user_admin を持つユーザーは、CelerData クラスター内のすべてのユーザーとロールの情報を表示できます。
権限情報を表示する
SHOW GRANTS を使用して、ユーザーまたはロールに付与された権限を表示できます。
-
現在のユーザーの権限を表示する。
SHOW GRANTS;NOTE
どのユーザーも、自分の権限を権限なしで表示できます。
-
特定のユーザーの権限を表示する。
次の例では、ユーザー
jackの権限を表示します。SHOW GRANTS FOR jack; -
特定のロールの権限を表示する。
次の例では、ロール
example_roleの権限を表示します。SHOW GRANTS FOR ROLE example_role;
ユーザーのプロパティを表示する
SHOW PROPERTY を使用して、ユーザーのプロパティを表示できます。
次の例では、ユーザー jack のプロパティを表示します。
SHOW PROPERTY FOR jack;
ロールを表示する
SHOW ROLES を使用して、CelerData クラウドアカウント内のすべてのロールを表示できます。
SHOW ROLES;
ユーザーを表示する
CelerData クラスター内のすべてのユーザーを SHOW USERS を使用して表示できます。
SHOW USERS;