このトピックでは、簡易権限モデルと標準 PostgreSQL 権限モデルを使用して、Hologres インスタンスの開発権限を RAM ユーザーに付与する方法について説明します。
背景情報
デフォルトでは、インスタンスの購入に使用された Alibaba Cloud アカウント (root ユーザー) が、そのインスタンスのスーパーユーザになります。スーパーユーザは、データベースの作成と削除、ロールの作成、ロールへの権限付与など、インスタンスに対するすべての権限を持ちます。
-
RAM ユーザーがインスタンスにアクセスするには、Alibaba Cloud アカウントによる権限付与が必要です。RAM ユーザーには、スーパーユーザロールを割り当てることもできます。
-
RAM ユーザーがインスタンスを購入する権限を持っている場合でも、Alibaba Cloud アカウントがそのインスタンスの開発権限を付与した後でなければ、Hologres インスタンスでデータ開発を実行することはできません。
RAM の権限とインスタンス開発の権限は、異なる方法で管理されます。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
簡易権限モデルを使用した権限付与 (推奨)
Hologres 管理コンソールで視覚的に権限を付与するには、以下の手順に従います。
-
ユーザーを作成します。
-
Alibaba Cloud アカウントでAlibaba Cloud 公式サイトにログインします。
-
Hologres 管理コンソールにログインし、ターゲットインスタンスの名前をクリックして詳細ページを開きます。
-
インスタンス詳細ページの左側のナビゲーションウィンドウで、アカウント管理 をクリックします。デフォルトで ユーザー管理 ページが開きます。
-
ユーザー管理 ページで、右上隅にある ユーザーの追加 をクリックします。
-
ユーザーの追加 ダイアログボックスで、検索ボックスを使用して対象のユーザーを検索して選択します。[メンバーロールの選択] セクションで、[スーパーユーザー] または [通常のユーザー] を選択し、[OK] をクリックします。
パラメーター
説明
組織メンバーの選択
権限を付与する RAM ユーザーを選択し、インスタンスに追加します。
メンバーロールの選択
-
スーパーユーザ:インスタンスに対するすべての操作権限を持ちます。
-
通常ユーザー:デフォルトでは、インスタンスに対する操作権限を持ちません。
RAM ユーザーが Hologres インスタンスに接続して使用する前に、特定の権限を付与する必要があります。
-
-
OK をクリックします。
-
-
任意: ユーザーに権限を付与します。この手順は、[通常ユーザー] を選択した場合に必須です。
-
ユーザー管理 ページの左側のナビゲーションウィンドウで、[DB 認可] をクリックします。
[DB 管理] ページにデータベースがない場合は、次の操作を実行する必要があります。
-
データベースの作成 をクリックします。
-
インスタンス名 を設定し、データベース名 を入力し、簡易アクセスポリシー を SPM に設定します。
-
-
[DB 権限付与] ページに移動し、操作 列で、 をクリックします。
-
新規権限付与 ダイアログボックスで、[ユーザー] ドロップダウンリストから対象のユーザーを選択し、[ユーザーグループ] セクションで、[管理者]、[開発者]、[ライター]、または [閲覧者] からロールを選択して、[OK] をクリックします。
パラメーター
説明
ユーザー
権限を付与する RAM ユーザー。
ユーザーグループ
-
管理者:データベース内のすべてのオブジェクトとユーザーグループを管理できます。
-
開発者:DDL ステートメントを使用してデータベースオブジェクトを作成、削除、または変更でき、データベースオブジェクトの読み取りと書き込みができます。
-
書き込み担当者:データベースオブジェクトの読み取りと書き込みができます。
-
読み取り担当者:すべてのデータベースオブジェクトに対する読み取り専用権限を持ちます。
-
-
OK をクリックします。
SQL ステートメントを実行して、簡易権限モデルを使用して RAM ユーザーに権限を付与することもできます。詳細については、「簡易権限モデルの使用」をご参照ください。
-
標準 PostgreSQL モデルを使用した権限付与
標準 PostgreSQL 権限モデルを使用して RAM ユーザーに権限を付与するには、次の手順に従います。
-
ユーザーを作成します。
RAM ユーザーを Hologres インスタンスに追加します。例:
CREATE USER "p4_UID"; // ID は Alibaba Cloud RAM ユーザーの UID です。 CREATE USER "p4_UID" SUPERUSER; // RAM ユーザーにスーパーユーザロールを付与します。 -
ユーザーに権限を付与します。
特定のオブジェクトにアクセスするために必要な権限を RAM ユーザーに付与する必要があります。例:
GRANT SELECT ON TABLE TABLENAME TO "p4_UID"; // RAM ユーザーにテーブルに対する SELECT 権限を付与します。 GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA PUBLIC TO "p4_UID"; // RAM ユーザーに PUBLIC スキーマ内のすべてのテーブルに対する SELECT、INSERT、UPDATE 権限を付与します。説明テーブルを削除できるのは、スーパーユーザまたはテーブルの所有者のみです。
標準 PostgreSQL 権限モデルでの権限付与の詳細については、「標準 PostgreSQL 権限モデル」をご参照ください。
RAM ユーザーとしての Hologres の使用
権限が付与されると、RAM ユーザーは PSQL クライアントから Hologres インスタンスに接続して使用できます。詳細については、「PSQL クライアント」をご参照ください。
例:
PGUSER=<AccessID> PGPASSWORD=<AccessKey> psql -p <Port> -h <Endpoint> -d <Database>
RAM ユーザー権限の表示
SQL ステートメントを使用して RAM ユーザーの権限を表示します。
開発ツールを使用して Hologres インスタンスに接続した後、次の SQL ステートメントを実行して RAM ユーザーの権限を表示できます。
SELECT * FROM pg_roles WHERE rolname = 'p4_UID'; // 特定のメンバーのロールを表示
SELECT rolname FROM pg_roles;
SELECT user_display_name(rolname) FROM pg_roles;
SELECT * FROM pg_catalog.pg_roles; コマンドを実行して、すべてのユーザーの権限を表示できます。