背景信息
GaussDB 200为帐户提供了自动锁定和解锁帐户、手动锁定和解锁异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据安全。
自动锁定和解锁帐户
- 为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。
- 当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。说明:
- 参数password_lock_time的整数部分表示天数,小数部分可以换算成时、分、秒。
- 当failed_login_attempts设置为0时,表示不限制密码错误次数。当password_lock_time设置为0时,表示即使超过密码错误次数限制导致帐户锁定,也会在短时间内自动解锁。因此,只有两个配置参数都为正数时,才可以进行常规的密码失败检查、帐户锁定和解锁操作。
- 这两个参数的默认值都符合安全标准,用户可以根据需要重新设置参数,提高安全等级。建议用户使用默认值。
- 由于配置对外提供接口服务的CN数量不同,数据库在帐户锁定上提供两种模式供用户选择:
- 安全模式:集群部署时配置一个CN对外提供接口服务。
- 高并发模式:集群部署时配置多个CN对外提供接口服务。
安全模式下单CN具备帐户锁定机制。高并发模式下提供多个CN,每个节点都具备帐户锁定机制,但各个节点的帐户锁定信息并不共享,每个节点帐户锁定是独立裁定的,在高并发的需求下,用户可以选择此模式,但要控制CN个数,以控制密码暴力破解风险。另外各节点的自动解锁时间依据的是各节点操作系统的时钟,用户集群部署时要确保各集群节点时间同步保持一致性,可以使用NTP来配置,否则会有各节点帐户解锁时间不一致的风险。
配置failed_login_attempts参数。
- 以操作系统用户omm登录CN所在主机,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
- 使用如下命令连接数据库。
gsql -d postgres -p 25308
postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=# - 查看已配置的参数。
SHOW failed_login_attempts;
failed_login_attempts
-----------------------
10
(1 row)如果显示结果不为10,执行“\q”命令退出数据库。
- 执行如下命令设置成默认值10。
gs_guc reload -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "failed_login_attempts=10"
配置password_lock_time参数。
- 以操作系统用户omm登录CN所在主机,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
- 使用如下命令连接数据库。
gsql -d postgres -p 25308
postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=# - 查看已配置的参数。
SHOW password_lock_time;
password_lock_time
-----------------------
1
(1 row)如果显示结果不为1,执行“\q”命令退出数据库。
- 执行如下命令设置成默认值1。
gs_guc reload -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_lock_time=1"
手动锁定和解锁帐户
若管理员发现某帐户被盗、非法访问等异常情况,可手动锁定该帐户。
当管理员认为帐户恢复正常后,可手动解锁该帐户。
以手动锁定和解锁用户joe为例,用户的创建请参见用户,命令格式如下:
- 手动锁定复制
ALTER USER joe ACCOUNT LOCK; ALTER ROLE
- 手动解锁复制
ALTER USER joe ACCOUNT UNLOCK; ALTER ROLE
删除不再使用的帐户
当确认帐户不再使用,管理员可以删除帐户。该操作不可恢复。
当删除的用户正处于活动状态时,此会话状态不会立马断开,用户在会话状态断开后才会被完全删除。
以删除帐户joe为例,命令格式如下:
DROP USER joe CASCADE; DROP ROLE