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

avatar
作者
筋斗云
阅读量:4

前言:

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

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

一、

sqlite数据库登录和基本查询

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

[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 数据库文件就可以了

[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的数据库

sqlite> .database seq  name             file                                                       ---  ---------------  ---------------------------------------------------------- 0    main             /var/lib/pgadmin/pgadmin4.db  

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

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表,这个是查看表结构,获取到表字段

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,登录失败三次就锁定账号了

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

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就可以解除账号锁定了

sqlite> update user set locked=1 where username='XXX@126.com'; sqlite> update user set login_attempts=1 where username='XXX@126.com';

密码修改:

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

update user set password='123456' where username='XXX@126.com';

 

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!