Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何在Azure Database for PostgreSQL灵活服务器中创建用户。
若要了解如何创建和管理Azure订阅用户及其特权,请参阅Azure基于角色的访问控制(Azure RBAC)一文或查看如何自定义角色。
服务器管理员帐户
首次创建Azure Database for PostgreSQL灵活服务器时,请提供服务器管理员用户名和密码。 有关详细信息,请参阅 “创建 Azure Database for PostgreSQL ”以查看分步方法。 由于服务器管理员用户名是自定义名称,因此可以从Azure门户中找到所选的服务器管理员用户名。
Azure Database for PostgreSQL灵活服务器是使用定义的三个默认角色创建的。 可以通过运行以下命令来查看这些角色: SELECT rolname FROM pg_roles;
- azure_pg_admin
- azuresu
- 您服务器上的管理员用户
服务器管理员用户是azure_pg_admin角色的成员。 但是,服务器管理员帐户不是 azuresu 角色的一部分。 由于此服务是托管 PaaS 服务,因此只有Microsoft是超级用户角色的一部分。
PostgreSQL 引擎使用特权来控制对数据库对象的访问,如 PostgreSQL 产品文档中所述。 在 Azure Database for PostgreSQL 中,服务器管理员用户被授予以下权限:
- 登录、NOSUPERUSER、INHERIT、CREATEDB、CREATEROLE
使用服务器管理员用户帐户创建更多用户,并授予这些用户azure_pg_admin角色。 此外,使用服务器管理员帐户创建特权较低的用户和角色,这些用户和角色有权访问各个数据库和架构。
如何在 Azure Database for PostgreSQL 中创建更多管理员用户
获取连接信息和管理员用户名。 需要完整的服务器名称和管理员登录凭据才能连接到Azure Database for PostgreSQL灵活服务器。 可以轻松地在 Azure 门户中的服务器 “概述 ”页或 “属性 ”页中找到服务器名称和登录信息。
使用管理员帐户和密码连接到Azure Database for PostgreSQL灵活服务器。 使用首选客户端工具,例如 pgAdmin 或 psql。 如果不确定如何连接,请参阅 “创建 Azure Database for PostgreSQL”。
编辑并运行以下 SQL 代码。 将新用户名替换为占位符值
<new_user>,并将占位符密码替换为你自己的强密码。CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>'; GRANT azure_pg_admin TO <new_user>;
如何在 Azure Database for PostgreSQL 中创建数据库用户
获取连接信息和管理员用户名。 需要完整的服务器名称和管理员登录凭据才能连接到Azure Database for PostgreSQL灵活服务器。 可以轻松地在 Azure 门户中的服务器 “概述 ”页或 “属性 ”页中找到服务器名称和登录信息。
使用管理员帐户和密码连接到Azure Database for PostgreSQL灵活服务器。 使用首选客户端工具,例如 pgAdmin 或 psql。
编辑并运行以下 SQL 代码。 将占位符值
<db_user>替换为预期的新用户名,并将占位符值<newdb>替换为自己的数据库名称。 将占位符密码替换为你自己的强密码。此 SQL 代码创建一个新数据库,然后在Azure Database for PostgreSQL灵活服务器中创建一个新用户,并向该用户的新数据库授予连接权限。
CREATE DATABASE <newdb>; CREATE USER <db_user> PASSWORD '<StrongPassword!>'; GRANT CONNECT ON DATABASE <newdb> TO <db_user>;使用管理员帐户时,可能需要授予其他权限来保护数据库中的对象。 有关数据库角色和特权的更多详细信息,请参阅 PostgreSQL 文档 。 例如:
GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;如果用户创建了名为 "role" 的表,则该表属于该用户。 如果另一个用户需要访问该表,则必须向表级别的其他用户授予权限。
例如:
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;使用新的用户名和密码登录到您的服务器,并指定相应的数据库。 此示例显示了 psql 命令行。 使用此命令,系统会提示输入用户名的密码。 替换自己的服务器名称、数据库名称和用户名。
psql --host=mydemoserver.postgres.database.chinacloudapi.cn --port=5432 --username=db_user --dbname=newdb