ユーザーの管理
インスタンスを作成すると、初期ユーザー名とパスワードを指定するように求められます。 この初期ユーザーはrootユーザーです。 インスタンスの作成後、ルートユーザーの資格情報を使用して、そのインスタンスのデータベースに接続できます。 PostgreSQLまたはGreenplumのpsql CLIクライアントを使用してインスタンス上のデータベースに接続した後、\du +
コマンドを実行してすべてのユーザーの情報を表示できます。 例:
rootユーザーに加えて、データベースを管理するために他のユーザーも作成されます。
postgres=> \du+
List of roles
Role name | Attributes | Member of | Description
--------------+-----------------------------------+-----------+---------------
root_user | | | rds_superuser
...
AnalyticDB for PostgreSQLは、RDS_SUPERUSERロールと同等のスーパーユーザーを提供しません。 これは、ApsaraDB RDS for PostgreSQLでも同じです。 ただし、RDS_SUPERUSERロールをルートユーザーに付与することはできます。たとえば、前の例で作成したroot_userです。 rootユーザーがこのロールを持っているかどうかは、ユーザーの説明に基づいてのみ確認できます。 root ユーザーには次の権限があります。
データベースとアカウントを作成し、データベースにログオンしますが、スーパーユーザーの資格情報はありません。
スーパーユーザー以外のユーザーが作成したテーブルを表示および変更し、テーブルの所有者を変更し、SELECT、UPDATE、DELETEなどの操作を実行します。
スーパーユーザー以外のユーザーへの接続を表示し、SQL文をキャンセルし、接続を終了します。
CREATE EXTENSIONおよびDROP EXTENSIONステートメントを実行して、拡張機能を作成および削除します。
RDS_SUPERUSERロールを持つユーザーを作成します。 例:
CRATE ROLE root_user2 RDS_SUPERUSER LOGIN PASSWORD 'xyz';
権限管理
データベース、スキーマ、およびテーブルレベルで権限を管理できます。 たとえば、ユーザーにテーブルの読み取り権限を付与し、書き込み権限を取り消す場合は、次のステートメントを実行します。
GRANT SELECT ON TABLE t1 TO normal_user1;
REVOKE UPDATE ON TABLE t1 FROM normal_user1;
REVOKE DELETE ON TABLE t1 FROM normal_user1;