HighGoDB 用户密码安全策略
文章目录环境文档用途详细信息环境系统平台Linux x86-64 Red Hat Enterprise Linux 7版本4.3.2文档用途通过调用函数的方式增强用户密码的安全性详细信息一般来说数据库密码安全管理要考虑以下几个方面 :密码过期策略, 决定密码的有效期, 多长时间过期.密码复用策略, 密码修改时需要对比以前的密码, 多少次以后才可以复用, 或者永不能使用与以前密码相同的密码.密码长度策略, 密码的最小长度, 太短的话很容易被穷举法破解, 一般至少使用8位以上长度的密码.密码复杂度策略, 密码包含的字符复杂度, 一般要求包含数字字母大小写以及特殊字符. 另外不要使用与数据库名, 用户名相似或一致的密码.密码字典过滤, 过滤掉一些用户常用的或者有意义的字符, 也是为了避免密码很容易被穷举破解.密码存储策略, 使用加密存储, 不要使用明文存储.加密存储在创建用户时使用encrypted password即可.如果设置了password_encryptionoff, 同时创建用户时不加encrypted, 那么密码将以明文存储.加密存储方法 :highgo# create role u1 login encrypted password highgo;CREATEROLE highgo# select * from pg_shadow where usenameu1;usename|usesysid|usecreatedb|usesuper|userepl|usebypassrls|passwd|v aluntil|useconfig---------------------------------------------------------------------------------------------------------------------------u1|131294|f|f|f|f|md50a0a7a2ef5607a4424f00e4903877f2e||(1row)密码锁策略, 密码输入错误多少次后锁用户, 多长时间解锁.HighgoDB不支持密码锁策略.密码保护策略, 密码输入错误多少次后延迟认证. 可用来防止暴力破解.目前HighgoDB在密码管理这块做得较弱, 以下举例通过函数来实现其中的部分安全策略 :创建一个字典表, 用于存放已经使用过的密码的md5值, 以及用来进行暴力破解的密码字典的md5值.highgo# create table pwd_dictionary(pwd text unique);CREATETABLE创建一个记录用户最后一次修改密码时间的表. 用于实施密码过期提醒策略.highgo# create table user_pwd(rolename name not null unique, pwd_modify_time timestamp not null);CREATETABLE创建用户的函数 :highgo# create or replace function create_role(i_rolename name, i_pwd text) returns void as $$declarev_lengthint:8;begin-- 密码长度策略iflength(i_pwd)v_lengththenraise noticepassword too short, please use password long than %.,v_length;return;endif;-- 密码复杂度策略, 包含数字, 字母大小写.ifnot(i_pwd~[a-z]andi_pwd~[A-Z]andi_pwd~[0-9])thenraise noticepassword too simple, please ensure password contain a-z,A-Z and 0-9.;return;endif;-- 密码复用策略, 不允许重复使用已经存在的密码.-- 密码字典策略, 不允许使用密码字典中的密码.insertintopwd_dictionary(pwd)values(md5(i_pwd));-- 插入用户表, 记录用户最后一次修改密码的时间, 用于密码过期策略insertintouser_pwd(rolename,pwd_modify_time)values(i_rolename,now());-- 创建用户executecreate role ||i_rolename|| encrypted password ||quote_literal(i_pwd);raise noticecreate role % successed.,i_rolename;return;end;$$languageplpgsql strict;CREATEFUNCTION创建用户密码过短,不允许创建.highgo# select * from create_role(u4,pwd);NOTICE: password too short,pleaseusepassword long than8.create_role-------------(1row)创建用户密码过于简单, 不允许创建.highgo# select * from create_role(u4,abcdefee);NOTICE: password toosimple,please ensure password contain a-z,A-Zand0-9.create_role-------------(1row)创建用户正常.highgo# select * from create_role(u4,aA0ffffffff);NOTICE:createrole u4 successed.create_role-------------(1row)创建用户密码与现有密码重复, 不允许创建.highgo# select * from create_role(new,aA0ffffffff);ERROR:duplicatekeyvalueviolatesuniqueconstraintpwd_dictionary_pwd_keyDETAIL:Key(pwd)(2b9aa88182d13d35930180b4cc791beb)alreadyexists.CONTEXT:SQLstatementinsert into pwd_dictionary(pwd) values (md5(i_pwd))PL/pgSQLfunctioncreate_role(name,text)line17atSQLstatement修改用户密码的函数 :highgo# create or replace function alter_role_pwd(i_rolename name, i_pwd text) returns void as $$declarev_lengthint:8;begin-- 密码长度策略iflength(i_pwd)v_lengththenraise noticepassword too short, please use password long than %.,v_length;return;endif;-- 密码复杂度策略, 包含数字, 字母大小写.ifnot(i_pwd~[a-z]andi_pwd~[A-Z]andi_pwd~[0-9])thenraise noticepassword too simple, please ensure password contain a-z,A-Z and 0-9.;return;endif;-- 密码复用策略, 不允许重复使用已经存在的密码.-- 密码字典策略, 不允许使用密码字典中的密码.insertintopwd_dictionary(pwd)values(md5(i_pwd));-- 更新用户表, 记录用户最后一次修改密码的时间, 用于密码过期策略updateuser_pwdsetpwd_modify_timenow()whererolenamei_rolename;-- 修改用户密码executealter role ||i_rolename|| encrypted password ||quote_literal(i_pwd);raise noticemodify role % password successed.,i_rolename;return;end;$$languageplpgsql strict;CREATEFUNCTION使用该函数修改用户密码 highgo# select * from alter_role_pwd(u4,new);NOTICE: password too short,pleaseusepassword long than8.alter_role_pwd----------------(1row)highgo# select * from alter_role_pwd(u4,new22222222);NOTICE: password toosimple,please ensure password contain a-z,A-Zand0-9.alter_role_pwd----------------(1row)highgo# select * from alter_role_pwd(u4,new2222222z2);NOTICE: password toosimple,please ensure password contain a-z,A-Zand0-9.alter_role_pwd----------------(1row)highgo# select * from alter_role_pwd(u4,new2222222z2A);NOTICE:modifyrole u4 password successed.alter_role_pwd----------------(1row)highgo# select * from alter_role_pwd(u4,new2222222z2A);ERROR:duplicatekeyvalueviolatesuniqueconstraintpwd_dictionary_pwd_keyDETAIL:Key(pwd)(9a5c46207db775d4d98e64d427481cbc)alreadyexists.CONTEXT:SQLstatementinsert into pwd_dictionary(pwd) values (md5(i_pwd))PL/pgSQLfunctionalter_role_pwd(name,text)line17atSQLstatement密码过期提醒 :因为密码最后一次修改时间已经更新到user_pwd表, 所以结合这个可以在系统crontab中或者nagios监控软件中实施密码过期提醒.highgo# select * from user_pwd ;rolename|pwd_modify_time--------------------------------------u4|2013-05-2518:21:59.376404(1row)[小结]为了密码安全性, 在HighgoDB中, 创建用户请使用create_role函数, 不要直接使用create role 命令.修改用户密码请使用alter_role_pwd函数. 不要直接使用alter role 命令.

相关新闻

Substance P (1-9) ;RPKPQPFG

Substance P (1-9) ;RPKPQPFG

一、基础信息 英文名称:Substance P (1-9)三字母序列:Arg-Pro-Lys-Pro-Gln-Gln-Phe-Phe-Gly单字母序列:RPKPQPFG精确分子量:1104.28 Da等电点(pI):6.2~6.7,弱酸性分子式&#xff1a…

2026/7/3 15:28:06 阅读更多 →
React Native鸿蒙:Card卡片圆角样式

React Native鸿蒙:Card卡片圆角样式

React Native鸿蒙:Card卡片圆角样式 在移动应用UI设计中,卡片式布局已成为现代应用的标准设计语言。本文深入探讨如何在OpenHarmony 6.0.0平台上使用React Native 0.72.5实现优雅的卡片圆角样式,分析平台适配要点、样式渲染机制及性能优化策略…

2026/7/3 15:28:12 阅读更多 →
Attention Isn‘t All You Need for Emotion RecognitionDomain Features Outperform Transformers on the E

Attention Isn‘t All You Need for Emotion RecognitionDomain Features Outperform Transformers on the E

Attention Isn’t All You Need for Emotion Recognition:Domain Features Outperform Transformers on the EAV Dataset Authors: Anmol Guragain Deep-Dive Summary: 论文总结:注意力并非情感识别的全部:领域特征在 EAV 数据集上优于 Transformer …

2026/7/3 15:28:15 阅读更多 →

最新新闻

Python 爬虫实战:汽车之家 50,524 条车型数据入库,MySQL 与 MongoDB 性能对比

Python 爬虫实战:汽车之家 50,524 条车型数据入库,MySQL 与 MongoDB 性能对比

Python 爬虫实战:汽车之家 50,524 条车型数据入库与数据库选型指南1. 爬虫数据存储的核心挑战在数据驱动的互联网时代,爬虫技术已成为获取信息的重要手段。但许多开发者在完成数据抓取后,往往面临一个关键问题:如何高效、可靠地存…

2026/7/5 22:20:51 阅读更多 →
红外与可见光图像配准:基于斜率一致性的创新方法

红外与可见光图像配准:基于斜率一致性的创新方法

1. 红外与可见光图像配准的核心挑战在计算机视觉领域,红外与可见光图像的配准一直是个棘手问题。我十年前第一次尝试用传统SIFT算法匹配这两种模态的图像时,匹配点对少得可怜——红外图像主要反映温度分布,可见光图像则依赖光学反射&#xff…

2026/7/5 22:20:51 阅读更多 →
Apache .htaccess文件上传漏洞:原理、利用与防御实战

Apache .htaccess文件上传漏洞:原理、利用与防御实战

1. 项目概述:.htaccess文件上传漏洞的攻防本质 在Web安全渗透测试的日常工作中,文件上传漏洞一直是一个“兵家必争之地”。它直接、有效,一旦利用成功,往往意味着可以直接获取Web服务器的控制权。而 .htaccess 文件,…

2026/7/5 22:18:51 阅读更多 →
AI创意工作流深度解析:MiniMax Hub如何重塑内容创作与设计流程

AI创意工作流深度解析:MiniMax Hub如何重塑内容创作与设计流程

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个面向创意工作的AI工具——MiniMax Hub。它被描述为“创意工作的Claude Code”,这个定位很有意思。Claude…

2026/7/5 22:16:50 阅读更多 →
AI客服系统选型实战指南:实时性、方言识别与合规性深度解析

AI客服系统选型实战指南:实时性、方言识别与合规性深度解析

1. 这不是“软件排行榜”,而是一份AI客服系统选型实战手记 我做智能客服系统集成和落地已经九年,从最早给银行部署基于规则的IVR语音导航,到后来带团队在电商大促期间扛住单日300万通AI外呼峰值,再到去年帮一家跨境SaaS公司把人工…

2026/7/5 22:14:50 阅读更多 →
步进电机全闭环控制与EtherCAT总线技术详解

步进电机全闭环控制与EtherCAT总线技术详解

1. 步进控制全闭环系统概述 在工业自动化领域,步进电机因其结构简单、控制方便而广受欢迎,但传统开环控制存在丢步风险。ZMC432CL-V2运动控制器通过光栅尺全闭环反馈和EtherCAT总线技术,完美解决了这一问题。这套系统的工作原理是&#xff1a…

2026/7/5 22:12:49 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻