データベースアカウントは、AnalyticDB for PostgreSQL における権限管理に使用されます。アカウントは、データベースオブジェクトに対する操作権限を持ちます。データベースに接続したり、そのオブジェクトを操作したりする前に、データベースアカウントを作成する必要があります。
アカウントの種類
AnalyticDB for PostgreSQL は、2 種類のデータベースアカウントを提供します。
-
特権アカウント:コンソールで作成された初期アカウント、および
RDS_SUPERUSERロールを持つ SQL ステートメントで作成されたアカウントが含まれます。特権アカウントは、すべてのデータベースに対するすべての操作権限を持ちます。権限には以下が含まれます。-
CREATEROLE、CREATEDB、およびLOGIN権限。つまり、アカウントはデータベースとデータベースアカウントを作成し、データベースにログインできます。ただし、SUPERUSER権限は持ちません。 -
SELECT、UPDATE、DELETEステートメントの使用や所有者の変更によって、他のアカウントのデータテーブルを表示および変更する権限。 -
他のアカウントの接続情報を表示したり、その SQL ステートメントをキャンセルしたり、接続を終了する権限。
-
CREATE EXTENSIONおよびDROP EXTENSIONコマンドを実行して拡張を作成および削除する権限。 -
RDS_SUPERUSERロールを持つ他のアカウントを作成する権限。
説明AnalyticDB for PostgreSQL は SUPERUSER 権限を付与しません。対応する権限は RDS_SUPERUSER で、これは ApsaraDB RDS for PostgreSQL の権限システムと一致しています。
-
-
標準アカウント:デフォルトでは、標準アカウントには権限がありません。特権アカウントまたは
GRANT権限を持つアカウントが、1 つ以上のデータベースオブジェクトに対する権限を付与する必要があります。
推奨事項
特権アカウントは、すべてのデータベースに対するすべての操作権限を持っています。データセキュリティを確保するため、日常の業務操作に特権アカウントを使用することは避けることを推奨します。代わりに、標準アカウントを作成し、特定のデータベースオブジェクトに必要な権限のみを付与してください。これにより、不正なアクセスや変更を防ぐことができます。
アカウントの作成
初期アカウントの作成
初期アカウントは、RDS_SUPERUSER ロールを持つ特権アカウントです。最初に初期アカウントを作成する必要があります。初期アカウントでデータベースにログインした後、他の特権アカウントまたは標準アカウントを作成できます。
初期アカウントは削除できません。初期アカウントのパスワードを忘れた場合は、リセットできます。
初期アカウントは、AnalyticDB for PostgreSQL コンソールで作成するか、API オペレーションを呼び出すことで作成できます。
コンソール
-
AnalyticDB for PostgreSQL コンソールにログインします。ページ上部でインスタンスのリージョンを選択します。その後、対象のインスタンスを見つけて、その ID をクリックします。
-
ナビゲーションペインで アカウント管理 をクリックします。
-
初期アカウントの作成 をクリックします。 アカウントの作成 ダイアログボックスで、アカウント名とパスワードを入力し、OK をクリックします。
パラメーター
説明
[アカウント]
初期アカウント名は、次の要件を満たす必要があります。
-
小文字、数字、アンダースコア (_) のみを含む必要があります。
-
小文字で始まり、小文字または数字で終わる必要があります。
-
gpで始まってはいけません。 -
長さは 2〜16 文字である必要があります。
[新しいパスワード] と [パスワード]
パスワードは、次の要件を満たす必要があります。
-
大文字、小文字、数字、特殊文字の 4 種類のうち、少なくとも 3 種類の文字を含む必要があります。
-
サポートされている特殊文字は
!@#$%^&*()_+-=です。 -
長さは 8~32 文字である必要があります。
重要データセキュリティのため、パスワードは定期的に変更し、以前のパスワードを再利用しないでください。
-
API
CreateAccount API を呼び出して初期アカウントを作成します。
特権 RDS_SUPERUSER アカウントの作成
特権アカウントを作成するには、アカウント作成時に RDS_SUPERUSER ロールを付与します。例:
CREATE ROLE username WITH LOGIN ENCRYPTED PASSWORD 'userPassword' RDS_SUPERUSER;
標準アカウントの作成
RDS_SUPERUSER ロールを持たないデータベースアカウントが標準アカウントです。標準アカウントは、AnalyticDB for PostgreSQL コンソールや API オペレーションでは作成できません。
SQL ステートメントを実行することで、標準アカウントを作成できます。例:
CREATE ROLE username WITH LOGIN ENCRYPTED PASSWORD 'userPassword';
特権アカウントおよび標準アカウントを作成する完全な SQL 構文については、「CREATE ROLE」をご参照ください。
データベースアカウントの照会
AnalyticDB for PostgreSQL コンソールには、初期アカウントのみが表示されます。SQL ステートメントで作成した他の特権アカウントや標準アカウントは表示されません。インスタンス内のすべての特権アカウント (初期アカウントを含む) と標準アカウントは、SQL ステートメントを実行するか、API オペレーションを呼び出すことで照会できます。
SQL
SELECT * FROM pg_roles;
照会結果のadbpgadminおよびauroraアカウントはシステムアカウントです。
API
-
DescribeAccounts API を呼び出して、すべてのデータベースアカウント名、その種類 (特権または標準)、および作成ステータスを照会できます。
-
DescribeDiagnosisDimensions API を呼び出して、すべてのデータベースアカウントとデータベースを照会できます。このオペレーションは、アカウントの種類や作成ステータスを返しません。
-
DescribeRoles API を呼び出して、すべてのデータベースアカウントを照会できます。このオペレーションは、アカウントの種類や作成ステータスを返しません。
パスワードのリセット
データベースアカウントのパスワードを忘れた場合は、AnalyticDB for PostgreSQL コンソール、SQL ステートメントの実行、または API オペレーションの呼び出しによってリセットできます。
コンソール
コンソールでは、初期アカウントのパスワードのみをリセットできます。標準アカウントのパスワードをリセットするには、SQL ステートメントを実行するか、API を呼び出す必要があります。
-
AnalyticDB for PostgreSQL コンソールにログインします。ページ上部でインスタンスのリージョンを選択します。その後、対象のインスタンスを見つけて、その ID をクリックします。
-
ナビゲーションペインで アカウント管理 をクリックします。
-
対象のアカウントを見つけ、パスワードをリセット をクリックします。ダイアログボックスで、新しいパスワードを入力します。
SQL
ALTER ROLE username WITH PASSWORD 'userPassword';
データベースアカウントのパスワードやその他の属性を変更する完全な SQL 構文については、「ALTER ROLE」をご参照ください。
API
ResetAccountPassword API を呼び出してアカウントのパスワードをリセットします。
次のステップ
標準アカウントの作成後、そのアカウントにはデータベースを操作したり、アクセスしたりする権限がありません。データベースオブジェクトに対する必要な権限を付与する必要があります。詳細については、「アカウント権限の管理」をご参照ください。