描述内置 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 中创建管理员用户
- 在 Azure Data Studio(或首选客户端工具)中,使用管理员登录凭据连接到 Azure Database for PostgreSQL 服务器。
- 通过将占位符替换为用户名和密码,编辑下列 SQL 代码:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;