当前位置: 首页 > 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.dtcms.com/a/325406.html

相关文章:

  • vue+flask基于规则的求职推荐系统
  • CentOS7搭建安全FTP服务器指南
  • 【安全发布】微软2025年07月漏洞通告
  • C语言如何安全的进行字符串拷贝
  • MQTT:Vue集成MQTT
  • GaussDB安全配置全景指南:构建企业级数据库防护体系
  • 【vue(一))路由】
  • uncalled4
  • 昆仑万维SkyReels-A3模型发布:照片开口说话,视频创作“一键改台词”
  • 使用行为树控制机器人(二) —— 黑板
  • 哈希、存储、连接:使用 ES|QL LOOKUP JOIN 的日志去重现代解决方案
  • Logistic Loss Function|逻辑回归代价函数
  • 实习学习记录
  • 集成电路学习:什么是URDF Parser统一机器人描述格式解析器
  • ttyd终端工具移植到OpenHarmony
  • 工业相机与智能相机的区别
  • 5G与云计算对代理IP行业的深远影响
  • 用 Python 绘制企业年度财务可视化报告 —— 从 Excel 到 9 种图表全覆盖
  • nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)
  • 论文中PDF的公式如何提取-公式提取
  • Lightroom 安卓版 + Windows 版 + Mac 版全适配,编辑管理一站式,专业摄影后期教程
  • 【实用案例】录音分片上传的核心逻辑和实现案例【文章附有代码】
  • 智能双行框!百度全量上线AI搜索,是革新浪潮还是昙花一现?
  • 场外个股期权交易系统全球解决方案:监管协同与流动性创新——基于香港LEAP框架与多级清算体系的实践验证
  • 腾讯 iOA 测评 | 横向移动检测、病毒查杀、外设管控、部署性能
  • 智能合约执行引擎在Hyperchain中的作用
  • 飞算 JavaAI 智能进阶:从技术工具到金融科技开发范式的革新
  • 能力评估:如何系统评估你的技能和经验
  • “人工智能 +”新政即将出台,哪些领域将迎来发展风口?
  • 论文学习22:UNETR: Transformers for 3D Medical Image Segmentation