sqlite|轻量数据库|pgadmin4的sqlite数据库操作--重置密码和账号解锁

前言:

pgadmin4的用户密码以及pgadmin4创建的pg数据库的连接信息等等都是存放在sqlite数据库内的;而有的时候,可能会由于自己的问题将pgadmin4的密码忘记,这个时候需要重置pgadmin4的密码,或者是pgadmin4的密码输错多次,导致账号被锁定,这些操作都是可以通过sqlite3 这个程序直接修改sqlite内的相关表实现的

本文将讲述如何在命令行简单的操作sqlite数据库,实现pgadmin4的用户锁定状态的解除,以及重设用户密码这样的简单操作

一、

sqlite数据库登录和基本查询

在/var/lib/pgadmin目录下有一个db文件,该文件就是sqlite的实体文件,所有表结构,表数据等等对象都存放在此文件内

bash 复制代码
[root@localhost pgadmin]# pwd
/var/lib/pgadmin
[root@localhost pgadmin]# ls
azurecredentialcache  pgadmin4.db  sessions  storage
[root@localhost pgadmin]# file pgadmin4.db 
pgadmin4.db: SQLite 3.x database

可以看到,该文件的类型是数据库文件类型,是sqlite3的某个版本

登录数据库非常简单,sqlite3 数据库文件就可以了

bash 复制代码
[root@localhost pgadmin]# sqlite3 pgadmin4.db 
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 

退出登录是CTRL+d 或者 输入 .exit 即可,这里就不演示了

查询有哪些数据库--- .database , 可以看到只有一个叫main的数据库

bash 复制代码
sqlite> .database
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /var/lib/pgadmin/pgadmin4.db  

查询有哪些表---.tables ,可以看到表比较多

bash 复制代码
sqlite> .tables
alembic_version              roles_users                
database                     server                     
debugger_function_arguments  servergroup                
keys                         setting                    
macros                       sharedserver               
module_preference            user                       
preference_category          user_macros                
preferences                  user_mfa                   
process                      user_preferences           
query_history                version                    
role                       

二、

查询表结构和更新表字段以更新密码和解除账号锁定

pragma table_info(user); 重置密码,账号锁定解除都是操作user表,这个是查看表结构,获取到表字段

bash 复制代码
sqlite> pragma table_info(user);
0|id|INTEGER|1||1
1|email|VARCHAR(256)|0||0
2|password|VARCHAR|0||0
3|active|BOOLEAN|1||0
4|confirmed_at|DATETIME|0||0
5|masterpass_check|VARCHAR(256)|0||0
6|username|VARCHAR(256)|1|''|0
7|auth_source|VARCHAR(256)|1|'internal'|0
8|fs_uniquifier|VARCHAR|1||0
9|locked|BOOLEAN|0|'false'|0
10|login_attempts|INTEGER|0|'0'|0

查看表数据有哪些,可以看到字段以 |分隔开,$pbkdf2-。。。。 这一串就是密码,但密码好像是md5加密

倒数第二是账号锁定状态,默认是没有锁定,false,倒数第一是登录失败次数,默认是0,登录失败三次就锁定账号了

bash 复制代码
sqlite> select * from user;
1|XXX@126.com|$pbkdf2-sha512$25000$FIJQKgVASGlNCQHAmLO2Fg$y.bruNhP4F/mt6avrpuNBlr8etMoBTo33zHtfCz9OspvK4O3D1TMEDJODJEXuqDxxqeFE1AMq7XX8Gb3BAD7yQ|1|||XXX@126.com|internal|060235abbbf242e99b9ed476561df6ac|false|0

🆗,输错几次密码后,再次查询user表,可以看到最后两个字段改变了,分别变成0和3

bash 复制代码
sqlite> select * from user;
1|XXX@126.com|$pbkdf2-sha512$25000$FIJQKgVASGlNCQHAmLO2Fg$y.bruNhP4F/mt6avrpuNBlr8etMoBTo33zHtfCz9OspvK4O3D1TMEDJODJEXuqDxxqeFE1AMq7XX8Gb3BAD7yQ|1|||XXX@126.com|internal|060235abbbf242e99b9ed476561df6ac|0|3

首先解除账号锁定,最后两个字段,locked修改为非0,false也可以,login_attempts更新为0就可以解除账号锁定了

bash 复制代码
sqlite> update user set locked=1 where username='XXX@126.com';
sqlite> update user set login_attempts=1 where username='XXX@126.com';

密码修改:

这个比较简单了,第二个字段更新就可以了,可以明文修改,例如修改为123456:

bash 复制代码
update user set password='123456' where username='XXX@126.com';

其实sqlite作为内嵌式数据库是比较简单的,因此,它的表结构什么的都是非常简单的,一般小项目内使用,会查询表,表结构,做一些简单的字段更新就完全🆗了

相关推荐
咕噜咕噜的猪大侠12 分钟前
《K8s 核心知识梳理:Deployment 滚动更新、JobCronJob、DaemonSet 和 Service》
云原生·容器·kubernetes
虚心的百褶裙15 分钟前
远程调用服务架构设计及zookeeper技术详解(下篇)
分布式·zookeeper·云原生
一池秋_18 分钟前
ubuntu(linux)完美复刻windows11字体,解决linux字体费眼晴
linux·运维·ubuntu
Geek-Chow18 分钟前
微服务认证与授权:08 — OPA(PDP)
微服务·云原生·架构
随风一样自由19 分钟前
【WSL+Linux】国内网络连接微软官方服务器(或GitHub)不稳定,导致下载内核或Linux发行版时超时断开如何解决?
linux·服务器·wsl
阿标在干嘛20 分钟前
100+微服务的统一出入口:政策快报平台的API网关设计
微服务·云原生·架构
源图客21 分钟前
Claude Code基础使用
服务器·前端·数据库
川石课堂软件测试33 分钟前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos
次旅行的库34 分钟前
解决ValueError: too many values to unpack (expected 2)
linux·人工智能·深度学习·机器学习·推荐算法
清晨曦月35 分钟前
【从零构建分布式在线评测系统】二、Judge0服务器上的心跳程序
运维·服务器·分布式