案例说明:

默认KingbaseES V8R3用户认证采用md5加密,有的生产环境对安全要求较高,需要将md5升级到sha-256;如果口令使用 scram-sha-256 设置加密,那么它可以被用于认证方法 scram-sha-256 和 md5、password (但后一种情况中口令将以明文传输)。如果口令使用 md5 设置加密,那么它仅能用于 md5 和 password 认证方法说明(同样,后一种情况中口令以明文传输)。本案例描述了在KingbaseES V8R3单实例环境下升级md5到sha-256过程。

MD5和SHA-256简介:

1) MD5简介

MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(哈希值),用于确保信息传输完整一致。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。对于任意长度的消息,这个摘要相当于是个长度为16个字节的数组,通常用一个长度为32的十六进制字符串来表示。

2) SHA-256简介

SHA-256信息摘要算法,也是一种密码散列函数对于任意长度的消息,SHA256都会产生一个256bit长的散列值(哈希值),用于确保信息传输完整一致,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示。

适用版本:

KingbaseES V8R3

一、查看当前用户口令加密方式

# 加密方式
test=# show password_encryption ;
password_encryption
---------------------
md5
(1 row) # 用户加密后口令信息
test=# select rolname, rolpassword from sys_authid;
rolname | rolpassword
----------------------+-------------------------------------
SYS_SIGNAL_BACKEND |
SYSTEM | md53afebd0fba6df9fc2cf82c0b09926bcc
SUPERMANAGER_V8ADMIN | md5f7902af5f3f7cdcad02b5ca09320d102
SYSSSO | md506de7a576af7f2791face19665f08a10
SYSSAO | md5ce2668ef745c2a09d32010b185466e91
(5 rows)

二、配置数据库启用sha-256加密方式

1、修改kingbase.conf配置

[kingbase@node101 data]$ cat kingbase.conf |grep password
#password_encryption = md5 # md5, sha-256 or plain
password_encryption = sha-256 # md5, sha-256 or plain

2、重启数据库实例

[kingbase@node101 bin]$ ./sys_ctl restart -D /data/kingbase/v8r3_370/data/

3、连接数据库实例

[kingbase@node101 bin]$ ./ksql -U system -W 123456 test
ksql (V008R003C002B0370)
Type "help" for help. # 查看用户密码加密方式
test=# show password_encryption ;
password_encryption
---------------------
sha-256
(1 row) # 查看用户密码加密方式(默认采用md5)
test=# select rolname, rolpassword from sys_authid;
rolname | rolpassword
----------------------+-------------------------------------
SYS_SIGNAL_BACKEND |
SYSTEM | md53afebd0fba6df9fc2cf82c0b09926bcc
SUPERMANAGER_V8ADMIN | md5f7902af5f3f7cdcad02b5ca09320d102
SYSSSO | md506de7a576af7f2791face19665f08a10
SYSSAO | md5ce2668ef745c2a09d32010b185466e91
(5 rows)

4、升级用户密码

# 重新配置用户密码
test=# alter user system with password '123456';
ALTER ROLE # 查看用户加密口令
test=# select rolname, rolpassword from sys_authid;
rolname | rolpas
sword
----------------------+---------------------------------------------------------------------------------
SYS_SIGNAL_BACKEND |
SUPERMANAGER_V8ADMIN | md5f7902af5f3f7cdcad02b5ca09320d102
SYSSSO | md506de7a576af7f2791face19665f08a10
SYSSAO | md5ce2668ef745c2a09d32010b185466e91
SYSTEM | sha-256:i0txmo38ZPh2zg==:4096:081a36a8f42a6f4720c6fd5342fa8c4f1a352e2901c49bb7b5
b37b685d51cfac:5b273d277831f28ca3a6307d199d9d70f19a14615c7bb31684b36c5250403d39
(5 rows

如下所示,system用户密码已经升级为sha-256加密:

5、配置sys_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 sha-256
host all all 0.0.0.0/0 sha-256
# IPv6 local connections:
host all all ::1/128 sha-256
host all all ::0/0 sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication SYSTEM sha-256
#host replication SYSTEM 127.0.0.1/32 sha-256
#host replication SYSTEM ::1/128 sha-256 # 重新加载配置文件
test=# select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row)

三、用户连接访问数据库

1、查看用户密码加密方式

[kingbase@node102 bin]$ ./ksql -h 192.168.1.101 -U system -W 123456 test
ksql (V008R003C002B0370)
Type "help" for help. test=# show password_encryption ;
password_encryption
---------------------
sha-256
(1 row)

2、用户连接数据库

[kingbase@node102 bin]$ ./ksql -h 192.168.1.101 -U system -W 123456 test
ksql (V008R003C002B0370)
Type "help" for help. test=#

Tips:

注意老的客户端可能缺少对SCRAM认证机制的支持,因此无法使用用SCRAM-SHA-256加密的口令.

四、总结

对于KingbaseES V8R3较新版本支持sha-256加密认证方式,单实例环境升级md5到sha-256较为简单;但是对于KingbaseES V8R3集群环境,注意kingbasecluster的集群之间的认证,用户不支持sha-256加密认证。

KingbaseES V8R3 运维案例 -- 单实例环境升级用户认证sha-256的更多相关文章

  1. KingbaseES V8R3 备份恢复案例之--单实例环境sys_rman脚本备份案例

    案例说明: sys_rman是KingbaseES数据库的物理备份工具,支持数据库的全备和增量备份,由于sys_rman工具使用需要配置多个参数,对于一般用户使用不是很方便.为方便用户在Kingbas ...

  2. 运维开发笔记整理-创建django用户

    运维开发笔记整理-创建django用户 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建普通用户 C:\Users\yinzhengjie\softwares\Pycharm ...

  3. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

  4. KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析

    ​ 案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...

  5. KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例

    案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...

  6. KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed

    案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...

  7. 运维案例 | Exchange2010数据库损坏的紧急修复思路

    ​​关注嘉为科技,获取运维新知 Exchange后端数据库故障,一般都会是比较严重的紧急故障,因为这会直接影响到大面积用户的正常使用,而且涉及到用户数据.一旦遇到这种级别的故障,管理员往往都是在非常紧 ...

  8. 更优雅的配置:docker/运维/业务中的环境变量

    目录 docker-compose 环境变量 .env 文件 env_file docker stack 不支持基于文件的环境变量 envsubst envsubst.py 1. 使用行内键值对 2. ...

  9. 程序员简单打造一个灵活智能的自动化运维系统C#实例程序

    你是一个程序员,被派去管理公司500台计算机.这些机器可能需要执行一些自动化任务,一台台手动操作会把你累死.重复性的工作还是交给电脑处理,怎么解决这个问题呢?一个自动化的运维系统是必须的.自己实现的好 ...

  10. RAC环境备份,RMAN异机在单实例环境恢复redo问题

    目的:客户环境11.2.0.4 ,多节点RAC环境,现在使用带库的备份,在单机环境测试备份有效性 1.normal参数文件 删除集群相关参数cluster 2.mount 使用备份的控制文件进行还原 ...

随机推荐

  1. eclipse项目右击找不到build path

    右击项目–>properties–>Project Facets–>勾选右侧的Java,然后保存. 此时再操作就有了.

  2. win32 - WaitForMultipleObjects的使用

    创建5个线程,并无限期地打印某些内容 #include <Windows.h> #include <stdio.h> DWORD IDs[5]; DWORD WINAPI Th ...

  3. mybatis处理集合、数组参数使用in查询

    对于mybatis的参数类型是集合数组的时候进行查询. 第一种:参数list ,使用mybatis的标签 1 SELECT * FROM TABLE_NAME AS a WHERE 2 3 a.id ...

  4. Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

    前言   前面做了一些交互,网页是直接通过html对response进行返回的,这里QtWebApp与传统的web服务器不同,传统的web服务器可以调用同级目录相对路径或者绝对路径下的js,而QtWe ...

  5. SSH 客户端

    简介 OpenSSH 的客户端是二进制程序 ssh.它在 Linux/Unix 系统的位置是/usr/local/bin/ssh. Linux 系统一般都自带 ssh,如果没有就需要安装. # Ubu ...

  6. 【LeetCode回溯算法#02】组合总和III

    组合总和III 力扣题目链接(opens new window) 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字 ...

  7. 第136篇:动画API:setInterval 与 requestAnimationFrame的区别

    好家伙,书接上文   function animate() { //请求-动画-框架 requestAnimationFrame( animate ); //改变正方体在场景中的位置,让正方体动起来 ...

  8. 【小程序分包】小程序包大于2M,来这教你分包啊

    前言 缘由 该大的不大,小程序包超出2M,无法上传发布 前段时间项目迭代时,因版本大升级,导致uniapp打包后小程序后,包体积大于2M.虽然将图片等静态资源压缩,体积大的资源放置cdn,在不懈的努力 ...

  9. Web常见漏洞描述及修复建议(转载)

    Web常见漏洞描述及修复建议 我太难了king 白帽聚集地 1 week ago 1.SQL注入 漏洞描述 Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了 ...

  10. 第142篇:原生js实现响应式原理

    好家伙,狠狠地补一下代码量   本篇我们来尝试使用原生js实现vue的响应式 使用原生js,即代表没有v-bind,v-on,也没有v-model,所有语法糖我们都用原生实现 1.给输入框绑个变量 & ...