当前位置: 首页 > 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.lryc.cn/news/617824.html

相关文章:

  • Spring Boot启动流程详解
  • 18.WEB 服务器
  • Logistic Loss Function|逻辑回归代价函数
  • 人工智能-python-机器学习-逻辑回归与K-Means算法:理论与应用
  • 【电机控制】FOC单电阻电流采样配置
  • DHCP 服务详解与部署
  • React 19 通用 ECharts 组件
  • Redis应⽤-缓存与分布式锁
  • Linux驱动学习day27天(USB驱动理论部分)
  • 修改学生信息管理系统以及查询
  • Ansys Mechanical中的声学分析
  • Nestjs框架: RBAC基于角色的权限控制模型初探
  • java内部类-匿名内部类
  • 适用于高质量核磁共振(NMR)的溶剂推荐
  • Apache ECharts 6 核心技术解密 – Vue3企业级可视化实战指南
  • 每日五个pyecharts可视化图表-line:从入门到精通 (3)
  • 编程技术杂谈4.0
  • SQL复杂查询
  • 论文学习22:UNETR: Transformers for 3D Medical Image Segmentation
  • TCGA数据集下载工具gdc-client下载慢解决方案
  • 掘金数据富矿,永洪科技为山东黄金定制“数智掘金”实战营
  • JavaScript let的使用
  • macos彻底删除vscode
  • 2025年农业工程与环境预防国际会议(ICAEEP 2025)
  • k8s 部署mysql主从集群
  • 用AListLite让安卓手机成为NAS实现文件共享
  • 基于开源模型构建医疗疾病大模型:从理论到实践
  • 2025牛客多校第八场 根号-2进制 个人题解
  • USB 基本描述符
  • TRL - Transformer Reinforcement Learning SFTTrainer 和 SFTConfig