postgres用户可以使用任何密码或没有密码登录

Zendasi:

因此,我建立了一个名为“文书工作”的用户,并使用了一个同名的数据库

postgres=# create role paperwork;
postgres=# create database paperwork;
postgres=# grant all privileges on database paperwork to paperwork;
postgres=# ALTER ROLE paperwork WITH LOGIN;
postgres=# ALTER ROLE paperwork WITH PASSWORD 'paperwork';

但这仍然让我无需密码即可以书面形式登录

[###@EMOO modules]$ psql --username=paperwork --host=localhost
psql (9.6.3)
Type "help" for help.

paperwork=> \q

当我强迫它使用密码时,它接受任何密码,包括空密码:

[###@EMOO modules]$ psql --username=paperwork --host=localhost --password
Password for user paperwork: 
psql (9.6.3)
Type "help" for help.

当我打开pgadmin3并单击“文书工作”用户时,它似乎具有加密的密码。

-- Role: paperwork

-- DROP ROLE paperwork;

CREATE ROLE paperwork LOGIN
  ENCRYPTED PASSWORD 'md585ff97314dbeb9953b989fd363a8e96f'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

另外,当我打开pgadmin3时,它询问我postgres密码,但是同样会接受任何东西作为postgres密码。(并且我记得在安装postgres时设置了postgres密码)如何进行设置,因此您需要正确的密码才能登录?还是这里有些背景让我完全想念?例如密码,仅用于远程登录或有些怪异。谢谢。

编辑:我没有一个/usr/share/postgresql/pg_hba.conf(编辑:实际上,我只是找不到它,因为我没有在“ locate”命令上使用sudo),我从样本文件:/usr/share/postgresql/pg_hba.conf.sample

从这里得到了这个想法:http : //blog.mattsch.com/2012/05/19/postgresql-accepts-any-or-no-password-when-connecting/我尝试使其具有md5身份验证,但我仍然拥有同样的问题。我尝试的是下面的文件/usr/share/postgresql/pg_hba.conf

@authcomment@

# TYPE  DATABASE        USER            ADDRESS                 METHOD

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local   all             all                                     @authmethodlocal@
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5 
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.

@remove-line-for-nolocal@#local   replication     @default_username@ @authmethodlocal@
#host    replication     @default_username@        127.0.0.1/32 @authmethodhost@
#host    replication     @default_username@        ::1/128 @authmethodhost@

然后,我重新启动了postgresql,但仍然遇到相同的问题。

编辑:感谢Abelisto该“ show config_file”命令(使用pgsql登录后)使我走上了正确的轨道。从我的Linux用户命令行运行的“ locate pg_hba.conf”没有权限在postgres目录中找到实际的配置文件:/ var / lib / postgres / data /用户“文书工作”在以下行上将/var/lib/postgres/data/pg_hba.conf中的“ trust”更改为“ md5”后,现在使用错误的密码拒绝了它:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5 
# IPv6 local connections:
host    all             all             ::1/128                 md5

可能只是想测试几件事就解决了。

Zendasi:

我的原始帖子的TLDR:

  1. 确保已将postgres密码设置为您知道的密码:

    [###@EMOO ~]$ psql -U postgres 
    psql (9.6.3)
    Type "help" for help.
    
    postgres=# ALTER ROLE postgres WITH PASSWORD 'postgres password';
    
  2. 找到你的pg_hba.conf

    sudo updatedb
    sudo locate pg_hba.conf
    
  3. 将您的“ trust”替换为“ md5” pg_hba.conf

  4. 重新启动PostgreSQL:

    sudo systemctl restart postgresql
    
  5. 以身份登录postgres并更改所需的任何用户密码。现在,如果用户未提供正确的密码,将被拒绝。

    psql -U postgres
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

登录问题我可以使用任何用户名和密码登录

没有密码创建的 Firebase 用户仍然可以登录吗?

没有密码的用户可以通过ssh登录吗?

我可以使用任何用户名和密码登录到Firebird 3数据库

是否可以仅为用户创建ssh密码而没有任何密码?

以没有密码的用户身份图形登录

oauth 2.0 - 资源所有者密码流程,可以使用 Windows 登录用户凭据

是否可以让 vino 使用与用户登录密码相同的密码?

即使我可以使用密钥在没有密码的情况下通过SSH进行登录,Rsync也会要求输入密码

如何在没有任何用户/密码登录的情况下访问此 Samba 共享?

在Windows 7上没有密码可以物理登录,但可以通过RDP使用密码登录

是否可以使用 Microsoft 帐户而不使用密码登录?

如果没有登录,用户如何更改密码

没有登录外壳的“系统用户”的无密码SSH

有什么方法可以使用Google Signup Android集成获取用户密码

MySQL的Docker实例未设置root密码-允许任何没有密码的登录

我可以使用keytool创建没有密码的Java信任库吗?

没有密码的SSH不适用于用户postgres

更改 Atlassian 密码后,我可以使用新密码登录 Bitbucket,但必须使用 GIT 的旧密码

创建没有密码的用户

PDF 可以有用户密码而没有所有者密码吗?

Laravel:使用Auth驱动程序登录,但没有密码

SSH登录无法使用没有密码的密钥吗?

使用SSH私钥登录时没有密码的sudo

使用Mongo Shell登录而没有显示密码?

我可以使用 Realm 存储所有数据,还是应该使用 NSUserDefaults 存储用户名/密码?

有没有一种方法可以使用单行中包含密码的scrypt?

如何知道我是否可以使用oracle用户删除?没有实际删除任何内容?

postgres:密码登录错误