在 PostgreSQL 中,我有以下配置pg_hba.conf
:
local all sec_eng scram-sha-256
host all sec_eng scram-sha-256
hostssl all app_server 192.168.1.0/32 scram-sha-256 clientcert=verify-full
没有其他配置行。
当我尝试使用 连接到 PostgreSQL 时sudo psql -U sec_eng
,客户端将我验证为peer
,并且不提示我输入任何密码,因此身份验证失败。
如果我尝试sudo psql -U sec_eng -h localhost
以 的身份进行身份验证Ident
,则不会提示输入密码,因此身份验证失败。
我在这里做错了什么?如何使用我的用户名和密码通过 Unix 套接字连接到 PostgreSQL?
它确实是控制 Postgres 身份验证的
pg_hba.conf
文件,但不确定它在特定安装中的位置。默认情况下,它是一个数据目录,但可以通过多种方式进行更改。hba_file
如果您可以连接到服务器,则可以将当前值(文件的完整路径)作为配置参数获取。为此,请以超级用户 (postgres
) 或属于pg_read_all_settings
角色的任何用户的身份进行身份验证,然后发出或者
(
\x
启用扩展输出,因此它将以列形式显示,在这种情况下更容易阅读)。请参阅视图的描述以pg_settings
了解输出。