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

相关推荐
一条晒干的咸魚2 分钟前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
努力算法的小明8 分钟前
SQL 复杂查询
数据库·sql
斗-匕11 分钟前
MySQL 三大日志详解
数据库·mysql·oracle
代码中の快捷键17 分钟前
MySQL数据库存储引擎
数据库·mysql
只因在人海中多看了你一眼18 分钟前
数据库体系
数据库
东华果汁哥18 分钟前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
尘浮生40 分钟前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
咖喱鱼蛋40 分钟前
Ubuntu安装Electron环境
linux·ubuntu·electron
ac.char44 分钟前
在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
linux·ubuntu·npm
肖永威1 小时前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos