組み込みの Azure Database for PostgreSQL サーバー ロールについて説明する

完了

PostgreSQL は、ロールを使用してデータベース アクセスを管理します。 ロールには、データベース ユーザーまたはユーザーのグループを指定できます。 ロールは次のことができます。

  • テーブルや関数などのデータベース オブジェクトを所有します。
  • これらのオブジェクトに対する権限を他のロールに割り当てます。
  • 別のロールにメンバーシップを付与し、メンバー ロールに権限を付与します。

Azure Database for PostgreSQL サーバーは、次の 3 つの既定のロールで作成されます。

  • azure_pg_admin
  • アズレス
  • サーバー管理者ユーザー - azure_pg_admin ロールの一部

次のクエリを実行して、すべてのサーバー ロールを表示します。

SELECT * FROM pg_roles;

手記

Azure Database for PostgreSQL はマネージド PaaS サービスであり、Azuresu (スーパー ユーザー) ロールを持つのは Microsoft ユーザーだけです。

サーバーを作成すると、サーバー管理者ユーザーも作成されました。 このユーザーは自動的に azure_pg_admin ロールのメンバーになりました。 Azure Database for PostgreSQL サーバー管理者ユーザーには、LOGIN、NOSUPERUSER、INHERIT、CREATEDB、CREATEROLE、REPLICATION という特権があります。

これで、サーバーの作成時に作成したサーバー管理者ユーザー アカウントで、次のことができます。

  • さらに多くのユーザーを作成し、それらのユーザーに azure_pg_admin ロールを付与します。
  • 個々のデータベースとスキーマにアクセスできる特権の少ないユーザーとロールを作成します。

PostgreSQL には、ユーザーに割り当てることができる既定のロールがいくつか含まれています。 これには、アクセスに一般的に必要な特権が含まれます。

  • pg_read_all_settings
  • pg_signal_backend
  • pg_read_server_files
  • pg_write_server_files
  • pg_execute_server_program

さらに専門家の役割もあります。

  • pg_monitor
  • pg_read_all_stats
  • pg_stat_scan_tables
  • レプリケーション

Azure Database for PostgreSQL で管理者ユーザーを作成する

  1. Azure Data Studio (または任意のクライアント ツール) で、管理者サインイン資格情報を使用して Azure Database for PostgreSQL サーバーに接続します。
  2. プレースホルダーをユーザー名とパスワードに置き換えて、次の SQL コードを編集します。
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;