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

完了

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

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

作成された Azure Database for PostgreSQL サーバーには、3 つの既定のロールがあります。

  • azure_pg_admin
  • azuresu
  • サーバー管理者ユーザー - azure_pg_admin ロールの一部

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

SELECT * FROM pg_roles;

Note

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

サーバーを作成したときに、サーバー管理者ユーザーも作成されました。 このユーザーは、自動的に 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>;