测试用户登录失败自动锁定

创建用户tee并授权。

TEST=# create user tee;
CREATE ROLE
TEST=# alter user tee with createdb;
ALTER ROLE
TEST=#
TEST=# alter user tee with createrole;
ALTER ROLE
TEST=#
TEST=# alter role tee with replication;
ALTER ROLE
TEST=# alter user tee with password '1234';
ALTER ROLE
TEST=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+------------
sao | No inheritance | {}
sso | No inheritance | {}
system | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
tee | Create role, Create DB, Replication | {}

创建扩展,设置用户触及最大失败登录次数即锁定。

加载插件

修改 kingbase.conf 文件中shared_preload_libraries 参数。

shared_preload_libraries = 'sys_audlog'
create extension sys_audlog;

参数说明:

参数名 取值范围 默认值 描述
sys_audlog.max_error_user_connect_times [0,INT_MAX] 2147483647 用户登录失败次数的最大值界限
sys_audlog.error_user_connect_times [0,INT_MAX] 0 允许用户连续登录失败的最大次数
sys_audlog.error_user_connect_interval [0,INT_MAX] 0 用户被锁定时间
TEST=# \c - sso
You are now connected to database "TEST" as user "sso".
TEST=>
TEST=> ALTER SYSTEM SET sys_audlog.error_user_connect_times = 3;
ALTER SYSTEM
test=> CALL sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row)

模拟tee用户登录失败超过最大次数。

[kingbase7@localhost data]$ ksql -UTEE -d test  -h 192.168.56.3  -W
Password:
ksql: error: could not connect to server: FATAL: password authentication failed for user "tee"
NOTICE: This is the 1 login failed. There are 2 left.
[kingbase7@localhost data]$ ksql -UTEE -d test -h 192.168.56.3 -W
Password:
ksql: error: could not connect to server: FATAL: password authentication failed for user "tee"
NOTICE: This is the 2 login failed. There are 1 left.
[kingbase7@localhost data]$ ksql -UTEE -d test -h 192.168.56.3 -W
Password:
ksql: error: could not connect to server: FATAL: The user "tee" is locked.

登录失败次数达到3次后,用户tee被锁定,此时,即使密码正确也无法正常登录,需要解锁该用户。

解锁用户两种方法:

1.超过时间间隔参数自动解除用户封锁 sys_audlog.error_user_connect_interval (此方法略过)

2.用户可由具有 ALTER USER 权限的用户通过 SQL 语句进行手动解锁,解锁后用户登录的信息自动删除。

[kingbase7@localhost data]$ ksql -USSO -d test  -h 192.168.56.3 -c 'alter user tee with login;'
Password for user SSO:
ERROR: must be superuser to alter replication users

报错原因是tee用户具有replication权限,所以sso用户不能为具有此权限的用户解锁。

根据官方文档描述,此命令执行用户需要sso安全用户执行。

如果用system用户执行会报以下错误:

[kingbase7@localhost data]$ ksql -USYSTEM -d test  -c 'alter user tee with login;'
ERROR: permission denied, only sso can enable user

解决方法:

用system登录,取消replication权限,这是集群复制相关的权限,普通用户没有用处。

test=# alter user tee with noreplication;
ALTER ROLE
test=# \c - sso
You are now connected to database "test" as user "sso".
test=>
test=> alter user tee with login;
ALTER ROLE
test=>

此时可以正常解决,解锁后,tee用户可以正常登录。

[kingbase7@localhost data]$ ksql -UTEE -d test  -h 192.168.56.3  -W
Password:
ksql (V8.0)
Type "help" for help.

总结

虽然数据库提供了sso用户解锁因为异常登录被锁定的用户,但是遇到拥有特殊权限的用户就会解锁失败,这时需要把该权限回收后再次解锁。解锁失败的原因是由于三权分立特性,安全用户不能干预系统管理员的授权功能。

KingbaseESV8R6用户登录失败自动锁定后解锁遇到权限问题的更多相关文章

  1. Centos 用户登录失败N次后锁定用户禁止登陆

    针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁 ...

  2. Centos7下用户登录失败N次后锁定用户禁止登陆的方法

    前言 针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁.Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值 ...

  3. Centos7 用户登录失败N次后锁定用户禁止登陆

    参考网站:https://blog.csdn.net/qq_33285112/article/details/78813369  未试 思路是查找/var/log/secure中验证失败且出现的次数较 ...

  4. 基于FLink实现的实时安全检测(一段时间内连续登录失败20次后,下一次登录成功场景)

    研发背景 公司安全部目前针对内部系统的网络访问日志的安全审计,大部分都是T+1时效,每日当天,启动Python编写的定时任务,完成昨日的日志审计和检测,定时任务运行完成后,统一进行企业微信告警推送.这 ...

  5. 使用触发器实现记录oracle用户登录失败信息到alert.log日志文件

    前面我们说了用oracle自带的审计功能可以实现记录用户登录失败日志到数据表中(链接:http://www.54ok.cn/6778.html).今天我们来分享一下如何把用户登录失败信息记录到aler ...

  6. SQL Server 2014:为什么会提示“用户登录失败”?

    SQL Server有两种登录方式,Windows身份验证和sql server身份验证,其对应的数据库连接字符串如下: Windows身份验证 ----- @"Data Source=DE ...

  7. spring boot:spring security给用户登录增加自动登录及图形验证码功能(spring boot 2.3.1)

    一,图形验证码的用途? 1,什么是图形验证码? 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers ...

  8. 【Python】用户登录三次锁定

    这是从另外一个博客考过了的,借鉴一下,怕下次找不到1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 # ...

  9. 用户登录密码RSA加密后传输的实现,非明文密码传输

    在用户登录页面,用户输入密码后,在传送到服务器端时,为防止在密码传送过程中,被如360这种东东给拦截到, 需要在传送前对密码进行加密,然后再传送! 利用RSA加密,在客户端使用公钥对密码进行加密,在服 ...

  10. 部署Cube报错,用户登录失败;280000

    在创建SSAS项目过程中,创建数据源.数据源视图.多维数据集.纬度等一切都没有问题.但是在“进程”这一步的时候,发现总是报错,提示如下. OLE DB 错误: OLE DB 或 ODBC 错误 : 用 ...

随机推荐

  1. let与const

    let与const ES2015(ES6)新增加了两个重要的JavaScript关键字: let和const. 块级作用域 代码块内如果存在let或者const,代码块会对这些命令声明的变量从块的开始 ...

  2. win10无法保存代理服务器设置

    问题说明 通过Internet设置->链接->局域网设置->代理服务设置,填写完地址后点选"确定"无反应,关闭窗口后重新打开'局域网设置',数据全无. 通过 开始 ...

  3. win32 - 写入安全日志(AuthzRegisterSecurityEventSource和AuthzReportSecurityEvent)

    微软文档介绍说, 安全日志在其他两个重要方面与其他日志不同.首先,在默认配置中,它受到强大的访问控制列表(ACL)和特权检查的保护,这将可以读取其内容的个人的范围限制为本地系统,管理员和安全特权的持有 ...

  4. [BUUCTF][Web][ACTF2020 新生赛]Include 1

    打开靶机对应的url 显示一个tips 超链接 点击访问超链接,对应Url为 http://469398f2-5677-4270-a4a4-55c5e4a7504a.node4.buuoj.cn:81 ...

  5. tempfile创建临时文件或目录

    import tempfile tempfile.TemporaryFile() # 创建文件,返回文件对象 tempfile.NamedTemporaryFile() # 同上,不过会生成带有文件名 ...

  6. SDWebImage从小白到大师蜕变

    简介 SDWebImage提供的简洁的获取远程URL图片的API:平时开发中使用最多场景就是列表中的cell中要显示远程图片的需求,在具体的实现中要避免加载图片造成的界面卡顿,列表卡顿等现象的出现:所 ...

  7. 【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息

    问题描述 如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息 问题解答 由于直接获取到的虚拟机信息(Virtual Machines - Get)中,并不会包含虚拟机的 ...

  8. Kotlin扩展函数与属性原理解析

    一.扩展函数 扩展函数可以方便地给现有类增加属性和方法而不改动类地代码. 二.原理 fun String.addTo(s: String): String{ return this + s } 反编译 ...

  9. 关闭mysql上锁的表/数据

    一.输入查询语句,查看是否有数据被上锁 select * from information_schema.innodb_trx; 取 trx_mysql_thread_id 字段值 kill < ...

  10. Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341)D - Only one of two(数论、二分)

    目录 链接 题面 题意 题解 代码 总结 链接 D - Only one of two 题面 题意 求第\(k\)个只能被\(N\)或\(M\)整除的数 题解 \([1,x]\)中的能被\(n\)整除 ...