ユーザー管理や権限管理を行うことで、AnalyticDB for PostgreSQL データベースを保護できます。このドキュメントでは、それぞれの管理方法を説明します。
ユーザー管理
インスタンスの作成時、初期ユーザーの名前とパスワードを指定する必要があります。初期ユーザーは root ユーザーです。インスタンスの準備ができたら、この root ユーザーアカウントを使ってデータベースに接続できます。psql(PostgreSQL または Greenplum のクライアントツール) を使用してデータベースに接続した後、\du+
コマンドを実行すると、すべてのユーザーの情報が表示されます。次に例を示します。
注:root ユーザー以外のユーザー (aurora や replicator など)も作成されます。これらのユーザーは、内部管理に使用されるスーパーユーザーです。
postgres=> \du+
List of roles
Role name | Attributes | Member of | Description
--------------+-----------------------------------+-----------+---------------
root_user | | | rds_superuser
...
AnalyticDB for PostgreSQL では、スーパーユーザー権限を利用できませんが、同等のロールである RDS_SUPERUSER (ApsaraDB for RDS (PostgreSQL) の権限システムと同じ) を提供します。したがって、root ユーザー (前述の例の root_user など) には、RDS_SUPERUSER 権限があります。権限は、ユーザーの説明を表示することで確認できます。
root ユーザーには次の権限があります。
CREATEROLE、CREATEDB、および LOGIN 権限 (SERUSUSER 権限は含まれません)。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;
関連情報
ユーザー管理方法や権限管理方法の詳細は、「Managing Roles and Privileges」をご参照ください。