DSb*_*ard 6 authentication postgresql pgadmin
我正在尝试使用以下设置在pgadmin3中注册新服务器:
Name: postgres
Host: localhost
Username: postgres
Password: <password which works for psql>
Service: empty or postgres
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
FATAL: Ident authentification failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
我重新启动了postgresql服务,但无济于事.
/var/lib/pgsql/data/pg_hba.conf的内容:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 ident
Run Code Online (Sandbox Code Playgroud)
编辑:工具 - >服务器配置 - > pg_hba.conf显示为灰色.
看起来 PgAdmin-III 可能默认通过 IPv6 连接,因此它使用ident与 localhost 的 IPv6 地址匹配的行::1/128。
如果要使用密码身份验证,您可能需要:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
我不确定为什么您将 unix 域套接字行设置为trust,但如果它只是一台开发机器,那可能没问题,所以保持不变。但是,将其作为ident(如果您希望 unix 用户必须与 Pg 用户相同)或md5(对于本地 unix 套接字上的密码身份验证)确实要安全得多。
pg_hba.conf如果 PgAdmin-III 没有编辑权限,您将需要直接在文本编辑器中进行编辑。您可以postgres通过以用户身份运行 PgAdmin-III sudo,但仅使用nano或类似的命令行文本编辑器来修改pg_hba.conf.
密码有效,psql因为psql除非另有说明,否则将通过 unix 域套接字连接,并且您已将其设置为trust. 你可能会发现你可以给它任何密码psql,它仍然可以工作,因为它从来没有被要求实际提供密码,它只是被自动信任。
| 归档时间: |
|
| 查看次数: |
12836 次 |
| 最近记录: |