创建和管理用户
数据库用户用于AnalyticDB for PostgreSQL数据库权限管理,可以拥有数据库对象的操作权限。在连接数据库、操作数据库对象前,您需要先创建数据库用户。
用户类型
AnalyticDB for PostgreSQL提供了两类用户:
高权限用户:包括控制台上创建的初始账号和通过SQL创建的具有RDS_SUPERUSER身份的用户。高权限用户拥有所有数据库的所有操作权限。具体包括:
具有CREATEROLE、CREATEDB和LOGIN权限,即可以创建数据库和用户、登录数据库,但没有SUPERUSER权限。
查看和修改其他用户的数据表,执行SELECT、UPDATE、DELETE或更改所有者(Owner)等操作。
查看其他用户的连接信息、撤销(Cancel)其SQL或终止(Kill)其连接。
执行CREATE EXTENSION和DROP EXTENSION命令,创建和删除插件。
创建其他具有RDS_SUPERUSER权限的用户。
说明AnalyticDB for PostgreSQL没有开放SUPERUSER权限,对应的是RDS_SUPERUSER,与云数据库RDS(PostgreSQL)的权限体系一致。
普通用户:又叫普通账号,默认不具备任何权限。需要高权限用户或具有GRANT权限的用户授予单个或多个数据库对象的操作权限。
使用建议
高权限用户具备数据库的所有操作权限。为了确保数据的安全性,建议避免使用高权限用户执行业务数据库的操作。您应该创建普通用户,并仅授予他们所需的特定数据库对象的特定权限,以防止未经授权的访问和更改。
创建用户
创建初始账号
初始账号也属于高权限用户,具备RDS_SUPERUSER身份。您需要先创建初始账号,通过初始账号登录数据库后,才能创建其他高权限用户或普通用户。
初始账号创建成功后,不可删除。如果忘记初始账号密码,可修改密码。
登录AnalyticDB for PostgreSQL控制台或调用OpenAPI可以创建初始账号。
控制台
在云原生数据仓库AnalyticDB PostgreSQL版控制台的页面顶部选择实例所在地域。然后在实例列表中找到并单击实例ID。
在左侧导航栏中,单击账号管理。
单击创建初始账号。在创建账号窗口中,填写账号名称并设置密码。然后单击确定。
配置
说明
数据库账号
初始账号的名称,限制如下:
由小写字母,数字和下划线组成。
以小写字母开头,小写字母或数字结尾。
不能以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创建的其他高权限用户和普通用户。您可以通过SQL或OpenAPI,查询实例的所有高权限用户(包括初始账号)和普通用户。
SQL
SELECT * FROM pg_roles;
查询结果中的adbpgadmin和aurora均为系统用户。
OpenAPI
调用DescribeAccounts - 查询账号信息接口,查询所有用户名、用户的类型(是高权限用户还是普通用户)、用户是否创建成功。
调用DescribeDiagnosisDimensions - 查询所有数据库和用户接口,查询所有用户和数据库。该接口不返回用户的类型、是否创建成功。
调用DescribeRoles - 获取角色列表接口,查询所有用户列表。该接口不返回用户的类型、是否创建成功。
修改密码
如果忘记用户的登录密码,您可以登录AnalyticDB for PostgreSQL控制台、执行SQL命令或调用OpenAPI,修改用户的密码。
控制台
控制台仅能修改初始账号密码。如需修改普通账号密码,请通过SQL修改。
在云原生数据仓库AnalyticDB PostgreSQL版控制台的页面顶部选择实例所在地域。然后在实例列表中找到并单击实例ID。
在左侧导航栏中,单击账号管理。
找到需要修改密码的账号,单击重置密码。在弹出的窗口重新输入新密码。
SQL
ALTER ROLE username WITH PASSWORD 'userPassword';
修改用户的密码、属性等完整SQL语法,请参见ALTER ROLE。
OpenAPI
调用ResetAccountPassword - 重置账号密码接口,修改用户的密码。
下一步
普通用户创建完成后,还无法操作或访问任何数据库。您还需要为普通用户授予数据库对象的操作权限,请参见账号权限管理。