描述内置 Azure Database for PostgreSQL 服务器角色

已完成

PostgreSQL 使用角色管理数据库访问权限。 角色可以是数据库用户,也可以是一组用户。 角色可以:

  • 拥有数据库对象,例如表或函数。
  • 将这些对象的权限分配给其他角色。
  • 将成员身份授予另一个角色,允许成员角色拥有其权限。

Azure Database for PostgreSQL 服务器是使用三个默认角色创建的:

  • azure_pg_admin
  • azuresu
  • 服务器管理员用户 - 属于角色 azure_pg_admin

通过执行以下查询查看所有服务器角色:

SELECT * FROM pg_roles;

注意

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>;