PostgreSQL远程连接配置管理账号密码分配(解决:致命错误: 用户 "postgres" Ident 认证失败)

PostgreSQL远程连接配置管理账号密码分配(解决:致命错误: 用户 "postgres" Ident 认证失败),第1张

概述问题:致命错误: 用户 "postgres" Ident 认证失败 说明:这个是由于没有配置远程访问且认证方式没改造成的,只需要更改使用账号密码认证即可。 解决:找到pg_hba.conf(find / -name pg_hba.conf),METHOD的ident修改为md5,且把ip端改为0.0.0.0/0,或者想要的IP地址即可。修改完成后直接reload即可。 特别吐槽:网上说直接trus

问题:致命错误: 用户 "postgres" IDent 认证失败

说明:这个是由于没有配置远程访问且认证方式没改造成的,只需要更改使用账号密码认证即可。

解决:找到pg_hba.conf(find / -name pg_hba.conf),METHOD的IDent修改为md5,且把ip端改为0.0.0.0/0,或者想要的IP地址即可。修改完成后直接reload即可。

特别吐槽:网上说直接trust,其实这个意思是只验证用户名,不验证密码!千万不要这样使用!!!

METHOD指定如何处理客户端的认证。常用的有IDent,md5,password,trust,reject

IDent是linux下Postgresql默认的local认证方式,凡是能正确登录服务器的 *** 作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_IDent.conf,这个文件记录着与 *** 作系统用户匹配的数据库用户,如果某 *** 作系统用户在本文件中没有映射用户,则默认的映射数据库用户与 *** 作系统用户同名。比如,服务器上有名为user1的 *** 作系统用户,同时数据库上也有同名的数据库用户,user1登录 *** 作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username IDent 认证失败”的错误,明明数据库用户已经createuser。原因就在于此,使用了IDent认证方式,却没有同名的 *** 作系统用户或没有相应的映射用户。解决方案:1、在pg_IDent.conf中添加映射用户;2、改变认证方式。

md5是常用的密码认证方式,如果你不使用IDent,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的 *** 作系统用户。

password是以明文密码传送给数据库,建议不要在生产环境中使用。

trust是只要知道数据库用户名就不需要密码或IDent就能登录,建议不要在生产环境中使用。

reject是拒绝认证。

在文件查找 Listen_addresses,他的值说明

如果希望只能从本地计算机访问Postgresql数据库,就将该项设置为‘localhost‘;
如果希望从局域网访问Postgresql数据库,就将该项设置为Postgresql数据库的局域网IP地址;
如果希望从互联网访问Postgresql数据库,就将该项设置为Postgresql数据库的互联网IP地址;
如果希望从任何地方都可以访问Postgresql数据库,就将该配置项设置为“*”;

创建用户:

# 先创建数据库用户dbuserpostgres=# create user dbuser with password ‘密码‘;# 创建系统用户 adduser dbuser # 修改系统用户密码 passwd dbuser

修改dbuser的密码:

# 切换用户为postgresu postgres# 登录psql# 修改dbuser的密码postgres=# alter user dbuser with password ‘自己的password‘;
# 或者
postgres=# \password dbuser

给dbuser分配数据库权限:

# 创建数据库时分配postgres=# create database 数据库名称 owner dbuser;# 创建数据库后赋予用户postgres权限postgres=# grant all privileges on database 数据库名称 to dbuser;

以dbuser的身份连接数据库:

su dbuserpsql -d 数据库名

 

参考:

https://blog.csdn.net/pipi0714/article/details/46047483

http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html 

总结

以上是内存溢出为你收集整理的PostgreSQL远程连接配置管理/账号密码分配(解决:致命错误: 用户 "postgres" Ident 认证失败)全部内容,希望文章能够帮你解决PostgreSQL远程连接配置管理/账号密码分配(解决:致命错误: 用户 "postgres" Ident 认证失败)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1163924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存