このトピックでは、簡易権限モデル (SPM) または標準 PostgreSQL 権限モデルを使用して、Alibaba Cloud アカウントを使用して Hologres インスタンスに対する開発権限を RAM ユーザーに付与する方法について説明します。
背景情報
デフォルトでは、インスタンスを購入するために使用された Alibaba Cloud アカウントが、インスタンスのスーパーユーザーとして設定されます。 スーパーユーザーは、インスタンスに対するすべての権限を持っています。 スーパーユーザーは、データベースの作成と削除、ロールの作成、ロールへの権限の付与を行うことができます。
RAM ユーザーとして Hologres にアクセスする場合は、次の点に注意してください。
RAM ユーザーが Hologres インスタンスにアクセスするには、Alibaba Cloud アカウントによって RAM ユーザーが承認されている必要があります。 RAM ユーザーには、スーパーユーザーロールを割り当てることができます。
RAM ユーザーがインスタンスを購入する権限を持っている場合でも、RAM ユーザーは、インスタンスに対する関連する開発権限が Alibaba Cloud アカウントによって付与された後にのみ、Hologres インスタンスでデータ開発を実行できます。
RAM 権限とインスタンスに対する開発権限は、異なるシナリオに適用されます。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
SPM を使用して RAM ユーザーに権限を付与する(推奨)
(オプション) RAM ユーザーに権限を付与します。
SPM では、SQL 文を実行して RAM ユーザーに権限を付与することもできます。 詳細については、「SPM の使用」をご参照ください。
標準 PostgreSQL 権限モデルを使用して RAM ユーザーに権限を付与する
標準 PostgreSQL 権限モデルを使用して RAM ユーザーに権限を付与するには、次の手順を実行します。
RAM ユーザーを作成します。
Hologres インスタンスの RAM ユーザーを作成します。 例の文:
CREATE USER "p4_Account ID"; // RAM ユーザーの UID を指定します。 CREATE USER "p4_Account ID" SUPERUSER; // RAM ユーザーにスーパーユーザーロールを割り当てます。RAM ユーザーに権限を付与します。
必要な権限が RAM ユーザーに付与された後にのみ、RAM ユーザーとして Hologres インスタンスで操作を実行できます。 例の文:
GRANT SELECT ON TABLE TABLENAME TO "Account ID"; // RAM ユーザーにテーブルに対する SELECT 権限を付与します。 GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA PUBLIC TO "p4_Account ID"; // RAM ユーザーにすべてのテーブルに対する SELECT、INSERT、および UPDATE 権限を付与します。説明テーブルを削除できるのは、スーパーユーザーとテーブルの所有者だけです。
標準 PostgreSQL 権限モデルを使用した権限付与の詳細については、「標準 PostgreSQL 権限モデル」をご参照ください。
RAM ユーザーとして Hologres を使用する
RAM ユーザーに Hologres インスタンスに対する必要な権限が付与されると、PostgreSQL クライアントを使用して Hologres インスタンスに接続し、RAM ユーザーとして操作を実行できます。 詳細については、「コマンドライン」をご参照ください。
例の文:
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; 文を使用して、すべてのユーザーの権限を表示できます。