HGDB安全版单机修改用户密码

文章目录

环境

系统平台:N/A

版本:4.5.10,4.5.9,4.5.8,4.5.7,4.5.6,4.5.1

文档用途

本文介绍了HGDB安全版单机如何修改用户密码

详细信息

日常工作,有时候用户需要修改数据库密码,或者因为输入错误密码次数过多,导致了用户被锁,在安全版,用户分为三权用户和普通用户,当三权打开时,忘记普通用户密码后,可以使用syssso用户修改,如果三权未打开,所有用户可以用sysdba用户修改密码,syssso无权修改用户密码。

三权用户忘记密码处理方法见第二个步骤,该方法可以修改任意用户的密码,但需要停止数据库,需要向客户申请停机时间。

查询三权是否打开

sql 复制代码
highgo=> select show_secure_param();
            show_secure_param            
-----------------------------------------
   hg_sepofpowers = on,                 +
   hg_macontrol = min,                  +
   hg_rowsecure = off,                  +
   hg_showlogininfo = off,              +
   hg_clientnoinput = 0 min(s),         +
   hg_idcheck.enable = on,              +
   hg_idcheck.pwdlock = 5 time(s),      +
   hg_idcheck.pwdlocktime = 24 hour(s), +
   hg_idcheck.pwdvaliduntil = 0 day(s), +
   hg_idcheck.pwdpolicy = high,         +
   hg_sepv4 = v4,                       +

hg_sepofpowers为on时三权打开,off为三权关闭,三权打开时,修改普通用户密码使用syssso用户,关闭时使用sysdba用户,修改普通用户密码

查看用户名:

sql 复制代码
\du
highgo=> \du
                        角色列表
 角色名称 |               属性                | 成员属于 
----------+-----------------------------------+----------
 sddw     | 密码有效直至infinity              | {}
 sysdba   | 没有继承, 建立角色, 建立 DB, 复制+| {}
          | 密码有效直至infinity              | 
 syssao   | 没有继承                         +| {}
          | 密码有效直至infinity              | 
 syssso   | 没有继承                         +| {}
          | 密码有效直至infinity              | 
 test     | 密码有效直至infinity              | {}
 yao      | 超级用户                         +| {}
          | 密码有效直至infinity              | 
 yao1     |                                   | {}

或者

sql 复制代码
highgo=# \du
                                List of roles
 Role name |                     Attributes                      | Member of 
-----------+-----------------------------------------------------+-----------
 sysdba    | No inheritance, Create role, Create DB, Replication+| {}
           | Password valid until infinity                       | 
 syssao    | No inheritance                                     +| {}
           | Password valid until infinity                       | 
 syssso    | No inheritance                                     +| {}
           | Password valid until infinity                       | 
 test      | Password valid until infinity                       | {}

1、修改用户密码

使用syssso或者sysdba用户修改普通用户密码或者登录用户修改自己的密码

sql 复制代码
----syssso用户登录
psql -U syssso
查看三权是否打开:
select show_secure_param();
---退出
\q
如三权打开,可以使用syssso修改普通用户密码,三权用户的密码只能自己修改
如三权未打开,使用sysdba用户可以修改所有用户的密码
无论三权是否打开,用户都可以修改自己的密码
---sysdba用户登录
psql -U sysdba
----修改用户密码
 alter user 用户 password '新密码';
如
 alter user ywcl password '随机密码';
如果用户名有大小写,需要把用户名用双引号选中,双引号中区分大小写:
 alter user "YWCL" password '随机密码';
 alter user "Test" password '随机密码';
三权打开时,
解锁用户(用户名区分大小写):
select user_unlock('用户名');

2、三权用户密码忘记时修改用户密码

修改三权用户密码:

该方法需要停止数据库,无法进行业务,只能在特殊情况下使用,如以下情况:

(1)在syssso密码忘记且需要使用的普通用户密码忘记或者被锁

(2)三权用户密码(sysdba、syssao、syssso)用户密码忘记,且需要使用的时候

步骤如下:

(1)停止数据库(与客户确认停库时间,确认可以停止数据库后停止)

sql 复制代码
----关闭数据库
pg_ctl stop
---进入单用户模式
postgres --single -D $PGDATA  highgo
---修改用户密码
alter user 用户 password '密码';
退出ctrl-D

注意,这样修改后用户的有效期不显示,为永久有效,

退出单用户模式使用键盘的Ctrl加D,单用户模式修改密码成功没有任何提示,

再次执行一遍修改同样的密码,报ERROR: The password cannot be the same as the old password.

修改密码完成,退出单用户模式

启动数据库,使用修改的密码登录,确认修改成功

sql 复制代码
---启动数据库
pg_ctl start
--用户使用新密码尝试登录
psql -U 用户名

附:密码复杂度建议

长度:至少10位

组成:大写字母(A-Z)、小写字母(a-z)、数字(0-9)、特殊字符(!@#$%^&*等)

避免:常见词汇、生日、连续数字、简单重复字符

注意:请妥善保管新密码,避免泄露。

相关推荐
这个DBA有点耶35 分钟前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范
星恒随风36 分钟前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
Alluxio1 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
数据库急诊室_阿哲5 小时前
一次加索引建议的复核记录:从报告到签字
数据库·ai数据库
青瓦梦滋6 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
慧都小妮子6 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能
Joy T7 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
杨凯凡8 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql
Aloudata8 小时前
Claude 做数据分析的这两年:一份复盘与发展线索
大数据·数据库·人工智能·数据挖掘·数据分析·dataagent
Decay__8 小时前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构