kingbaseES用户的口令被存储在sys_authid系统表中。

口令可以用SQL命令create user 和alter user 管理,例如 :create/alter user u1 with password '123456',或者ksql命令\password u1。

如果没有为一个用户设置口令,那么存储的口令为空并且对该用户的口令认证总会失败。

不同的身份验证方法的可用性取决于用户的密码在服务器上是如何加密的。加密方式由配置参数password_encryption控制。

如果密码使用scram-sha-256方式对密码进行了加密,那么它可以用于身份验证方法scram-sha-256,md5和password。

如果是使用md5方式加密的, 那么它只能用于md5和password认证方法规范,若使用scram-sha-256认证方式时会认证失败。

测试验证

登录数据库,分别在md5和scram-sha-256加密方式下创建u1,u2用户

test=# show password_encryption;
password_encryption
---------------------
md5
(1 行记录) test=# create user u1 with password '12345';
CREATE ROLE
test=# set password_encryption='scram-sha-256';
SET
test=# show password_encryption;
password_encryption
---------------------
scram-sha-256
(1 行记录) test=# create user u2 with password '12345';
CREATE ROLE test=# select rolname,rolpassword from sys_authid where rolname in ('u1','u2');
rolname | rolpassword
---------+---------------------------------------------------------------------------------------------------------------------------------------
u1 | md508f63a23b291a334d2d9f1f462bbf4b7
u2 | SCRAM-SHA-256$4096:virLaT2ZsLfxFz0YnCZCEA==$GGOsQRVIw8uFUC8r3c4R9Hv8Xc2kYRyuon+ZhOloIS0=:ONA9yDYJ831DqLFg+ZvNuGhMeUukFjthGx8huQWybV0=
(2 行记录)

测试在不同认证方式下用户登录的情况:

1. md5 认证方式

[kbnew@singlekbdb data]$ grep -A 1 "IPv4 local connections" sys_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5 [kbnew@singlekbdb data]$ ksql -Uu1 -d test -p5566 -h 127.0.0.1
用户 u1 的口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. test=> \q
[kbnew@singlekbdb data]$ ksql -Uu2 -d test -p5566 -h 127.0.0.1
用户 u2 的口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. test=> 2个用户都可以正常登录

2. scram-sha-256认证方式

[kbnew@singlekbdb data]$ vi sys_hba.conf
[kbnew@singlekbdb data]$ sys_ctl reload -D /home/kbnew/kdb/data
server signaled
[kbnew@singlekbdb data]$ grep -A 1 "IPv4 local connections" sys_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256 [kbnew@singlekbdb data]$ ksql -Uu1 -d test -p5566 -h 127.0.0.1
用户 u1 的口令:
ksql: 错误: 无法连接到服务器:致命错误: 用户 "u1" Password 认证失败
[kbnew@singlekbdb data]$ ksql -Uu2 -d test -p5566 -h 127.0.0.1
用户 u2 的口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. test=> u1 认证失败无法登录,u2 正常登录

KingbaseES 用户密码认证及加密算法的更多相关文章

  1. squid+stunnel+用户密码认证的三种玩法

    没办法,应用越来越深入,就会越来越多要求. squid+stunnel+用户密码认证的场景至少以下三个,我会遇到. 1,标准玩法 在服务器上建一个SQUID,加密码认证,然后,其它人通过它上网.(不要 ...

  2. EMQ -- 用户密码认证

    emq 的用户密码认证 MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿名认证(anonymous) ...

  3. emqtt 试用(五)emq 的用户密码认证

    MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿名认证(anonymous),通过加载认证插件可开启 ...

  4. elasticsearch 6.2.4添加用户密码认证

    elasticsearch 6.3版本之前的添加认证需安装x-pack插件,6.3之后貌似去掉了这个. 1.安装x-pack 先切换到elastic用户下,在执行以下命令 $cd /data/elas ...

  5. Oracle用户密码认证方式

    oracle用户有两种认证方式: 操作系统认证(要求该用户属于本地DBA组,然后通过操作系统认证登录oracle,从而启动数据库) 密码文件认证 oracle使用哪种认证方式决定在于两个参数: 1.r ...

  6. emqtt emq 的用户密码认证

    MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿名认证(anonymous),通过加载认证插件可开启 ...

  7. scylladb docker-compose 用户密码认证配置

    scylladb 对于用户的认证配置还是比较简单的,以下是一个docker-compose 配置的说明 环境准备 docker-compose 文件 version: "3" se ...

  8. python装饰器实现用户密码认证(简单初形)

    import timecurrent_user={'user':None}def auth(engine = 'file'): def deco(func): #func=最初始的index和最初始的 ...

  9. 搭建Docker私有仓库&用户密码认证&web可视化界面

    1.拉取镜像 docker pull hyper/docker-registry-web docker pull registry 2.安装 yum install docker-compose 3. ...

  10. ansible不配ssh连接,用户密码登录

    ansible 不配ssh免密链接,直接用ssh用户密码连接,要先装sshpass. 否则会报错: sshpass安装 sshpass下载地址:http://sourceforge.net/proje ...

随机推荐

  1. Delphi 实现刘谦春晚魔术

    看了博友的C# 实现刘谦春晚魔术很好,改成了delphi版的. 1 program Project1; 2 3 {$APPTYPE CONSOLE} 4 {$R *.res} 5 6 uses 7 S ...

  2. Redis高级系列详解

    01-Redis系列之-Redis介绍安装配置 02-Redis系列之-架构和高级API的使用 03-Redis系列之-高级用法详解 04-Redis系列之-持久化(RDB,AOF) 05-Redis ...

  3. dilb安装的三种方法

    dilb库安装失败,源码安装嘎嘎报错,所以这里记录一下 dlib库是一个很特殊的库,在下载dlib库之前需要下载两个库(cmake.boost这两个库) pip install cmake boost ...

  4. Redis加Lua脚本实现分布式锁

    先讲一下为什么使用分布式锁: 在传统的单体应用中,我们可以使用Java并发处理相关的API(如ReentrantLock或synchronized)来实现对共享资源的互斥控制,确保在高并发情况下同一时 ...

  5. 【Azure Redis 缓存】Azure Redis 遇见的连接不上问题和数据丢失的情况解答

    问题描述 PHP应用再连接Azure Redis服务时,出现Connection Timed out.当通过升级提高Azure Redis的性能时候,发现之前的数据丢失了. 问题解答 当Redis服务 ...

  6. 【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因

    问题描述 在App Server的部署中心配置好本地Git 仓库 并推送 git push azure master 分支代码到服务器时,并未发生错误 ,但是服务异常,无法访问到正确的项目文件,始终打 ...

  7. Java 多线程------例子(1) --创建 三个窗口 买票 总票数为 100张 使用继承Thread类的方式

    1 package com.bytezero.threadexer; 2 3 4 5 /** 6 * 7 * 创建 三个窗口 买票 总票数为 100张 使用继承Thread类的方式 8 * @auth ...

  8. Java 基本数据类型之间的运算规则

    1 /*** 2 * 基本数据类型之间的运算规则 3 * 4 * 前提:7中基本数据类型运算 5 * 6 * 1.自动类型提升: 7 * 当容量小的类型与容量大的数据类型的变量做运算时,结果自动提升为 ...

  9. php编写日历类

    <?php /** * 日历类 * Class Calendar * @author fengzi * @date 2022-05-05 15:42 */ class Calendar{ pro ...

  10. Java核心之细说泛型

    泛型是什么? 等你使用java逐渐深入以后会了解或逐步使用到Java泛型.Java 中的泛型是 JDK 5 中引入的功能之一."Java 泛型 "是一个技术术语,表示一组与定义和使 ...