当前位置: 首页 > news >正文

GaussDB 数据库架构师修炼(十三)安全管理(1)-账号的管理

1 业务背景

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

2 账号管理机制

1)设置账号有效期

创建用户并制定用户的有效开始时间和有效结束时间。

gaussdb=# CREATE USER joe WITH PASSWORD '********' VALID BEGIN '2015-10-10 08:00:00' VALID UNTIL '2016-10-10 08:00:00';

用户已不在有效使用期内,需要重新设定账号的有效期,这包括有效开始时间和有效结束时间。

gaussdb=# ALTER USER joe WITH VALID BEGIN '2016-11-10 08:00:00' VALID UNTIL '2017-11-10 08:00:00';

2)账号的锁定与解锁机制

  • 自动锁定和解锁账户

        为了保证账户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该账户,默认值为10。次数设置越小越安全,但 是在使用过程中会带来不便。

        当账户被锁定时间超过设定值password_lock_time,则当前账户自动解锁,默认值为1。时间设置越长越安全,但是在使用过程中会带来不便。

  • 手动锁定和解锁账户

      若管理员发现某账户被盗、非法访问等异常情况,可手动锁定该账户。当管理员认为账户恢复正常后,可手动解锁该账户。

alter user user_name  ACCOUNT LOCK/UNLOCK;

3 账号口令安全

1)支持配置口令存储加密方式
采用PBKDF2算法对口令进行单向不可逆加密,哈希算法可通过password_encryption_type参数配置。
2)支持口令复杂度校验

初始化数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂password_policy的要求,否 则会提示用户重新输入密码。通过设置password_policy决定是否采用密码复杂度校验。具体要求如下:

  • 包含大写字母(A-Z)的最少个数(password_min_uppercase)

  • 包含小写字母(a-z)的最少个数(password_min_lowercase)

  • 包含数字(0-9)的最少个数(password_min_digital)

  • 包含特殊字符的最少个数(password_min_special)

  • 密码的最小长度(password_min_length)

  • 密码的最大长度(password_max_length)

  • 至少包含上述四类字符中的三类。

          不能和用户名、用户名倒写相同,本要求为非大小写敏感。

          不能和当前密码、当前密码的倒写相同。

          不能是弱口令。

3)支持设置口令有效期

数据库用户的密码都有密码有效期password_effect_time),当达到密码到期提醒天数(password_notify_time)时, 系统会在用户登录数据库时提示用户修改密码。考虑到数据库使用特殊性及业务连续性,密码过期后用户还可以登录数据库, 但是每次登录都会提示修改密码,直至修改为止。

4)支持弱口令配置

弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别,用户需要自己添 加定制化的弱口令。弱口令字典中的口令存放在gs_global_config系统表中(name字段为weak_password的记录是储存的弱 口令),当创建用户、修改用户需要设置密码时,将会把用户设置口令和弱口令字典中存放的口令进行对比,如果命中,则 会提示用户该口令为弱口令,设置密码失败。

举例:
gaussdb=# CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('Gauss@123'), ('Gauss_123');
CREATE WEAK PASSWORD DICTIONARY
gaussdb=# create user u2 password 'Gauss@123';
ERROR: Password should not be weak password.

http://www.xdnf.cn/news/1278649.html

相关文章:

  • OmniHuman:字节推出的AI项目,支持单张照片生成逼真全身动态视频
  • STM32 HAL驱动MPU6050传感器
  • TradingAgents-CN: 基于多智能体的中文金融交易决策框架
  • 基于深度学习的异常检测算法在时间序列数据中的应用
  • 【深度学习3】向量化(Vectorization)
  • 广州建筑矢量数据分享,带高度,矢量文件
  • Day118 Spring Security
  • 论文阅读:Aircraft Trajectory Prediction Model Based on Improved GRU Structure
  • LabVIEW模糊逻辑控制车辆停靠
  • 视觉相机偏移补偿
  • .NET Core MVC中CSHTML
  • 嵌入式硬件中AI硬件设计方法与技巧
  • 18.WEB 服务器
  • docker compose和docker-compose命令的区别
  • Vue2篇——第二章 Vue从指令修饰符到侦听器的全面解析(重点)
  • MATLAB绘制水的蒸汽压曲线(Antoine方程)
  • jdk17下载安装教程【超详细图文】
  • 《设计模式》策略模式
  • vue3-基础语法
  • JUC学习笔记-----ReentrantLock
  • TC39x STM(System Timer)学习记录
  • 机器学习数学基础:46.Mann-Kendall 序贯检验(Sequential MK Test)
  • Spring Boot - 内置的9个过滤器用法
  • Day 9-2: Transformer翻译实例演示 - 翻译的基础设施
  • AI大模型 教师方向应用探索
  • Audio Flamingo
  • 第4章 程序段的反复执行4 多重循环练习(题及答案)
  • Python day40
  • C++ list类
  • 【深度学习新浪潮】遥感图像风格化迁移研究工作介绍