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

相关推荐
山峰哥1 分钟前
造价算量系统SQL优化,慢查询从9秒压到35毫秒‌
大数据·数据库·sql·编辑器·深度优先
做运维的阿瑞4 分钟前
Linux ELF 文件
linux·运维·服务器
Escalating_xu4 分钟前
【Makefile 进阶】从自动发现源文件、模式规则到目录分离与多模块递归构建
linux·开发语言
遇见小修修4 分钟前
打印机连不上电脑无法打印
大数据·运维·python·电脑
IT大白鼠4 分钟前
Kubernetes 持久化存储:PV、PVC、StorageClass 存储体系
云原生·容器·kubernetes
星辰徐哥11 分钟前
鸿蒙PC平台 Gnote 笔记应用适配实战:从 Linux 到 鸿蒙PC 的 Electron 迁移
linux·笔记·electron·harmonyos·gnote
AC赳赳老秦13 分钟前
电力能源公开数据采集实操:用 OpenClaw 合规抓取电网电价与发电量数据,生成区域能源供需分析报告
大数据·数据库·人工智能·python·php·deepseek·openclaw
一直C24 分钟前
Linux应用软件编程|嵌入式轻量级数据库SQLite3完整学习笔记(命令行+C语言API)
linux·sqlite
Jay Kay24 分钟前
RDMA中CQ为什么用轮询?——从CQ、Doorbell到GID的深度解析
运维·服务器·网络
司小豆26 分钟前
第七课:DeepSeek Harness 服务与依赖注入
java·服务器·开发语言·github·ai编程