设置账户安全策略
背景信息
VexDB 为账户提供了自动锁定和解锁账户、手动锁定和解锁异常账户和删除不再使用的账户等一系列的安全措施,保证数据安全。
自动锁定和解锁账户
为了保证账户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该账户,默认值为5。次数设置越小越安全,但是在使用过程中会带来不便。
当账户被锁定时间超过设定值(password_lock_time),则当前账户自动解锁,默认值为1440分钟。时间设置越长越安全,但是在使用过程中会带来不便。
- 参数password_lock_time的取值范围:整型,最小值为1,最大值为525600,单位为分钟,默认值为1440分钟。
- 参数failed_login_attempts的取值范围:整型,最小值为1,最大值为1000,默认值为5。
参数failed_login_attempts表示在任意时候,如果输入密码错误的次数达到设定值则当前账户被锁定,password_lock_time分钟后被自动解锁。因此,只有两个配置参数都为正数时,才可以进行常规的密码失败检查、账户锁定和解锁操作。
这两个参数的默认值都符合安全标准,用户可以根据需要重新设置参数,提高安全等级。建议用户使用默认值。
配置 failed_login_attempts
- 以安装 VexDB 的操作系统用户(vexdb为例)登录数据库主节点。
- 使用如下命令连接数据库。
vsql -d postgres
- 查看已配置的参数。
SHOW failed_login_attempts;
返回结果如下:failed_login_attempts ----------------------- 5 (1 row)
如果显示结果不为 5,执行\q
命令退出数据库。 - 执行如下命令设置成默认值 5。
vb_guc reload -D $PGDATA -c "failed_login_attempts=5"
配置 password_lock_time 参数
- 以安装 VexDB 的操作系统用户(vexdb为例)登录数据库主节点。
- 使用如下命令连接数据库。
vsql -d postgres
- 查看已配置的参数。
SHOW password_lock_time;
返回结果如下所示:password_lock_time ----------------------- 1440 (1 row)
如果显示结果不为1440,则修改为1440,执行\q命令退出数据库。 - 执行如下命令设置成默认值1440。
vb_guc reload -D $PGDATA -c "password_lock_time=1440"
手动锁定和解锁账户
若管理员发现某账户被盗、非法访问等异常情况,可手动锁定该账户。
当管理员认为账户恢复正常后,可手动解锁该账户。
以手动锁定和解锁用户 joe(joe 为已经存在且需要锁定和解锁的用户)为例:
- 创建用户。
CREATE USER joe PASSWORD 'Vbase@123';
- 手动锁定。
ALTER USER joe ACCOUNT LOCK;
- 手动解锁。
ALTER USER joe ACCOUNT UNLOCK;
删除不再使用的账户
当确认账户不再使用,管理员可以删除账户。该操作不可恢复。
当删除的用户正处于活动状态时,此会话状态不会立马断开,用户在会话状态断开后才会被完全删除。
以删除账户joe为例,命令格式如下:
DROP USER joe CASCADE;