创建和管理用户

更新时间:

数据库用户用于AnalyticDB for PostgreSQL数据库权限管理,可以拥有数据库对象的操作权限。在连接数据库、操作数据库对象前,您需要先创建数据库用户。

用户类型

AnalyticDB for PostgreSQL提供了两类用户:

  • 高权限用户:包括控制台上创建的初始账号和通过SQL创建的具有RDS_SUPERUSER身份的用户。高权限用户拥有所有数据库的所有操作权限。具体包括:

    • 具有CREATEROLE、CREATEDBLOGIN权限,即可以创建数据库和用户、登录数据库,但没有SUPERUSER权限。

    • 查看和修改其他用户的数据表,执行SELECT、UPDATE、DELETE或更改所有者(Owner)等操作。

    • 查看其他用户的连接信息、撤销(Cancel)其SQL或终止(Kill)其连接。

    • 执行CREATE EXTENSIONDROP EXTENSION命令,创建和删除插件。

    • 创建其他具有RDS_SUPERUSER权限的用户。

    说明

    AnalyticDB for PostgreSQL没有开放SUPERUSER权限,对应的是RDS_SUPERUSER,与云数据库RDS(PostgreSQL)的权限体系一致。

  • 普通用户:又叫普通账号,默认不具备任何权限。需要高权限用户或具有GRANT权限的用户授予单个或多个数据库对象的操作权限。

使用建议

高权限用户具备数据库的所有操作权限。为了确保数据的安全性,建议避免使用高权限用户执行业务数据库的操作。您应该创建普通用户,并仅授予他们所需的特定数据库对象的特定权限,以防止未经授权的访问和更改。

创建用户

创建初始账号

初始账号也属于高权限用户,具备RDS_SUPERUSER身份。您需要先创建初始账号,通过初始账号登录数据库后,才能创建其他高权限用户或普通用户。

重要

初始账号创建成功后,不可删除。如果忘记初始账号密码,可修改密码。

登录AnalyticDB for PostgreSQL控制台或调用OpenAPI可以创建初始账号。

控制台

  1. 云原生数据仓库AnalyticDB PostgreSQL版控制台的页面顶部选择实例所在地域。然后在实例列表中找到并单击实例ID。

  2. 在左侧导航栏中,单击账号管理

  3. 单击创建初始账号。在创建账号窗口中,填写账号名称并设置密码。然后单击确定

    配置

    说明

    数据库账号

    初始账号的名称,限制如下:

    • 由小写字母,数字和下划线组成。

    • 以小写字母开头,小写字母或数字结尾。

    • 不能以gp开头。

    • 长度为2~16个字符。

    新密码确认密码

    初始账号的密码,限制如下:

    • 由大写字母、小写字母、数字、特殊字符其中三种及以上组成。

    • 支持的特殊字符包括!@#$%^&*()_+-=

    • 长度为8~32个字符。

    重要

    为保障数据安全,建议您定期更换密码。不要使用曾经用过的密码。

OpenAPI

调用CreateAccount - 创建初始账号接口,创建初始账号。

创建高权限用户RDS_SUPERUSER

创建用户时增加RDS_SUPERUSER属性,即可创建高权限用户。示例如下:

CREATE ROLE username WITH LOGIN ENCRYPTED PASSWORD 'userPassword' RDS_SUPERUSER;

创建普通用户

普通用户指不具备RDS_SUPERUSER身份的用户。AnalyticDB for PostgreSQL控制台和OpenAPI均不支持创建普通用户。

您可以通过SQL创建普通用户。示例如下:

CREATE ROLE username WITH LOGIN ENCRYPTED PASSWORD 'userPassword';

创建高权限用户和普通用户的完整SQL语法,请参见CREATE ROLE

查询用户

AnalyticDB for PostgreSQL控制台仅显示初始账号,不显示通过SQL创建的其他高权限用户和普通用户。您可以通过SQLOpenAPI,查询实例的所有高权限用户(包括初始账号)和普通用户。

SQL

SELECT * FROM pg_roles;
查询结果中的adbpgadminaurora均为系统用户。

OpenAPI

修改密码

如果忘记用户的登录密码,您可以登录AnalyticDB for PostgreSQL控制台、执行SQL命令或调用OpenAPI,修改用户的密码。

控制台

控制台仅能修改初始账号密码。如需修改普通账号密码,请通过SQL修改。

  1. 云原生数据仓库AnalyticDB PostgreSQL版控制台的页面顶部选择实例所在地域。然后在实例列表中找到并单击实例ID。

  2. 在左侧导航栏中,单击账号管理

  3. 找到需要修改密码的账号,单击重置密码。在弹出的窗口重新输入新密码。

SQL

ALTER ROLE username WITH PASSWORD 'userPassword';

修改用户的密码、属性等完整SQL语法,请参见ALTER ROLE

OpenAPI

调用ResetAccountPassword - 重置账号密码接口,修改用户的密码。

下一步

普通用户创建完成后,还无法操作或访问任何数据库。您还需要为普通用户授予数据库对象的操作权限,请参见账号权限管理