openGauss、MogDB角色锁定机制

2024年 2月 6日 134.0k 0

原作者:邓秋爽

  • 适用范围
  • 问题概述
  • 详细参数
  • 详细方案
    • 一、配置failed_login_attempts参数
    • 二、配置password_lock_time参数。
    • 三、手动锁定和解锁帐户
    • 四、删除不再使用的帐户

适用范围

openGauss、MogDB数据库

问题概述

openGauss 2.0.1版本数据库出现用户被锁定,由于openGauss对于密码错误达到10次的用户会自动进行锁定

详细参数

openGauss为角色提供了用户锁定和解锁、手动锁定和解锁异常用户和删除不再使用的用户等一系列的安全措施,保证数据安全。

自动锁定和解锁用户
为了保证用户角色安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该用户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。
当用户被锁定时间超过设定值(password_lock_time),则当前用户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。

说明:

-参数password_lock_time的整数部分表示天数,小数部分可以换算成时、分、秒。
-当failed_login_attempts设置为0时,表示不限制密码错误次数。当password_lock_time设置为0时,表示即使超过密码错误次数限制导致用户锁定,也会在短时间内自动解锁。因此,只有两个配置参数都为正数时,才可以进行常规的密码失败检查、用户锁定和解锁操作。

-这两个参数的默认值都符合安全标准,用户可以根据需要重新设置参数,提高安全等级。建议用户使用默认值。

详细方案

一、配置failed_login_attempts参数

1.以操作系统用户omm登录数据库主节点。

2.使用如下命令连接数据库。
gsql -d postgres -p 8000

3.查看已配置的参数。
postgres=# SHOW failed_login_attempts;

failed_login_attempts
-----------------------
0
(1 row)

4.执行如下命令设置成默认值10。
gs_guc reload -D /gaussdb/data/dbnode -c "failed_login_attempts=10"

二、配置password_lock_time参数。

1.以操作系统用户omm登录数据库主节点。

2.使用如下命令连接数据库。
gsql -d postgres -p 8000

3.查看已配置的参数。
postgres=# SHOW password_lock_time;

password_lock_time
-----------------------
1
(1 row)

4.执行如下命令设置成默认值1。
gs_guc reload -N all -I all -c "password_lock_time=1"

三、手动锁定和解锁帐户

手动锁定和解锁用户joe为例,用户的创建请参见用户,命令格式如下:

手动锁定
postgres=# ALTER USER joe ACCOUNT LOCK;
ALTER ROLE

手动解锁
postgres=# ALTER USER joe ACCOUNT UNLOCK;
ALTER ROLE

四、删除不再使用的帐户

当确认帐户不再使用,管理员可以删除用户。该操作不可恢复。当删除的用户正处于活动状态时,此会话状态不会立马断开,用户在会话状态断开后才会被完全删除。
postgres=# DROP USER joe CASCADE;
DROP ROLE

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论