メインコンテンツまでスキップ

クラスター内のデータベースユーザーを管理する

このトピックでは、CelerData でのユーザー、ロール、および権限の管理方法について説明します。

CelerData は、ロールベースのアクセス制御 (RBAC) とアイデンティティベースのアクセス制御 (IBAC) の両方を採用しており、CelerData クラスター内の権限を管理します。これにより、クラスター管理者は異なる粒度レベルでクラスター内の権限を簡単に制限できます。

CelerData クラスター内では、権限はユーザーまたはロールに付与できます。ロールは、必要に応じてクラスター内のユーザーまたは他のロールに割り当てられる権限の集合です。ユーザーには 1 つ以上のロールを付与でき、それにより異なるオブジェクトに対する権限が決まります。

ユーザーを管理する

システム定義のロール user_admin を持つユーザーは、CelerData クラスター内でユーザーを作成、変更、削除できます。

ユーザーを作成する

ユーザー名、認証方法、およびデフォルトロールを指定してユーザーを作成できます。ユーザーの作成に関する詳細情報と高度な手順については、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

どのユーザーも、自分のパスワードを権限なしでリセットできます。

次の例はどちらも、jack のパスワードを 54321 にリセットします。

  • SET PASSWORD を使用してパスワードをリセットする:

    SET PASSWORD FOR jack = PASSWORD('54321');
  • ALTER USER を使用してパスワードをリセットする:

    ALTER USER jack IDENTIFIED BY '54321';

ユーザーを削除する

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;