このトピックでは、簡易権限モデルと標準 PostgreSQL 権限モデルを使用して、Hologres インスタンスの開発権限を RAM ユーザーに付与する方法について説明します。
背景情報
デフォルトでは、インスタンスの購入に使用した Alibaba Cloud アカウントが、そのインスタンスのスーパーユーザーになります。スーパーユーザーは、データベースの作成と削除、ロールの作成、ロールへの権限付与など、インスタンスに対するすべての権限を持ちます。
-
RAM ユーザーがインスタンスにアクセスするには、Alibaba Cloud アカウントによる権限付与が必要です。RAM ユーザーをスーパーユーザーロールに割り当てることもできます。
-
RAM ユーザーがインスタンスを購入する権限を持っていても、Alibaba Cloud アカウントからそのインスタンスの開発権限を付与されてはじめて、Hologres インスタンスでデータ開発を実行できます。
RAM 権限とインスタンス開発権限は、制御方法が異なります。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
簡易権限モデルを使用した権限付与 (推奨)
-
オプション: ユーザーに権限を付与します。この手順は、一般ユーザーを選択した場合に必要です。
SQL 文を実行して、簡易権限モデルを使用して RAM ユーザーに権限を付与することもできます。詳細については、「簡易権限モデルの使用」をご参照ください。
標準 PostgreSQL 権限モデルを使用した権限付与
標準 PostgreSQL 権限モデルを使用して RAM ユーザーに権限を付与するには、次の手順を実行します:
-
ユーザーを作成します。
Hologres インスタンスに RAM ユーザーを追加します。例:
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; コマンドを実行して、すべてのユーザーの権限を表示できます。