pgadmin4 允许使用错误密码以管理员用户身份登录
pgadmin4 allows login as admin user with wrong password
我在 pgadmin4 中创建了一个带密码的管理员用户:
CREATE USER admin WITH
LOGIN
SUPERUSER
CREATEDB
CREATEROLE
INHERIT
REPLICATION
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
但是我可以使用管理员用户和任何错误的密码登录到相应的服务器。
我使用 psql 命令行检查用户是否已创建,确实如此。
# SELECT usename FROM pg_user;
usename
------------
postgres
xxxxxxxxxxx
admin
(3 rows)
我检查了我是否可以通过 psql 命令行使用管理员用户和错误的密码登录,它成功了...
我是不是做错了什么?
Pgadmin4 v1.1
PostgreSQL v9.6
Centos 6.8 和 macOSX 19.12.1
同样的问题
这是猜测,但这是有根据的猜测,因为我遇到了类似的问题。
如果您的 pg_hba.conf
文件,我相信您已将管理员用户设置为 "trust." 这几乎意味着它可以从您指定的任何地方登录,无需密码。
如果将其更改为 "md5,",应该可以解决问题。
# TYPE DATABASE USER ADDRESS METHOD
host all admin <whatever> trust
改为
host all admin <whatever> md5
当然,其中一些字段可能会有所不同,具体取决于您设置服务器的方式,但您明白了。
我在 pgadmin4 中创建了一个带密码的管理员用户:
CREATE USER admin WITH
LOGIN
SUPERUSER
CREATEDB
CREATEROLE
INHERIT
REPLICATION
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
但是我可以使用管理员用户和任何错误的密码登录到相应的服务器。 我使用 psql 命令行检查用户是否已创建,确实如此。
# SELECT usename FROM pg_user;
usename
------------
postgres
xxxxxxxxxxx
admin
(3 rows)
我检查了我是否可以通过 psql 命令行使用管理员用户和错误的密码登录,它成功了...
我是不是做错了什么?
Pgadmin4 v1.1
PostgreSQL v9.6
Centos 6.8 和 macOSX 19.12.1
这是猜测,但这是有根据的猜测,因为我遇到了类似的问题。
如果您的 pg_hba.conf
文件,我相信您已将管理员用户设置为 "trust." 这几乎意味着它可以从您指定的任何地方登录,无需密码。
如果将其更改为 "md5,",应该可以解决问题。
# TYPE DATABASE USER ADDRESS METHOD
host all admin <whatever> trust
改为
host all admin <whatever> md5
当然,其中一些字段可能会有所不同,具体取决于您设置服务器的方式,但您明白了。