このトピックでは、Alibaba Cloud アカウントが簡易権限モデルと標準 PostgreSQL 権限モデルを使用して、インスタンスの開発権限を Resource Access Management (RAM) ユーザーに付与する方法について説明します。
背景情報
デフォルトでは、インスタンスを購入した Alibaba Cloud アカウントがスーパー管理者 (スーパーユーザー) として設定されます。スーパーユーザーは、データベースの作成と削除、ロールの作成、ロールへの権限付与など、インスタンスに対するすべての権限を持ちます。
RAM ユーザーの権限に関する注意事項は次のとおりです。
-
RAM ユーザーがインスタンスにアクセスするには、Alibaba Cloud アカウントが RAM ユーザーに権限を付与する必要があります。RAM ユーザーにはスーパーユーザー権限を付与することもできます。
-
RAM ユーザーがインスタンスを購入する権限を持っている場合でも、Hologres インスタンスでデータ開発を行うには、Alibaba Cloud アカウントがそのユーザーに開発権限を付与する必要があります。
RAM 権限のアクセスの制御は、インスタンス開発権限のアクセスの制御とは異なります。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
簡易権限モデルを使用した RAM ユーザーへの権限付与 (推奨)
-
任意: ユーザーへの権限付与
簡易権限モデルでは、SQL 文を使用した RAM ユーザーへの権限付与もサポートされています。詳細については、「簡易権限モデルの使用」をご参照ください。
標準 PostgreSQL 権限モデルを使用した RAM ユーザーへの権限付与
次の手順では、エキスパート権限モデルを使用して RAM ユーザーに権限を付与する方法について説明します。
-
ユーザーの作成
Hologres インスタンスに RAM ユーザーを作成します。次のコードはサンプル文です。
CREATE USER "p4_AccountID"; // ID は Alibaba Cloud RAM ユーザーの UID です。 CREATE USER "p4_AccountID" SUPERUSER; // RAM ユーザーにスーパーユーザー権限を付与します。 -
ユーザーへの権限付与
RAM ユーザーが権限の範囲内のオブジェクトにアクセスするには、必要な権限を付与する必要があります。次のコードは、権限付与のサンプル文です。
GRANT SELECT ON TABLE TABLENAME TO "AccountID"; // RAM ユーザーにテーブルの表示権限を付与します。 GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA PUBLIC TO "p4_AccountID"; // RAM ユーザーにすべてのテーブルの追加、変更、表示の権限を付与します。説明テーブルを削除できるのは、スーパーユーザーまたはテーブルのオーナーのみです。
標準 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_ID'; //メンバーが持つロールを表示します。
SELECT rolname FROM pg_roles;
SELECT user_display_name(rolname) FROM pg_roles;
SELECT * FROM pg_catalog.pg_roles; コマンドを使用して、すべてのユーザーの権限を表示できます。