首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgreSQL“信任”与"ident“的区别?

postgreSQL“信任”与"ident“的区别?
EN

Server Fault用户
提问于 2013-06-12 14:29:07
回答 2查看 14.5K关注 0票数 5

在postgreSQL的/var/lib/pgsql/data/pg_hba.conf中,trustident可以设置为method,例如,如下所示。

代码语言:javascript
复制
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   all         postgres                          trust
host    all         postgres    127.0.0.1/32          trust

我的印象是,这两者的不同之处就在于trust i和root一样。

代码语言:javascript
复制
psql postgres

对于ident,我不得不

代码语言:javascript
复制
sudo -u postgres psql postgres

但是,即使使用trust,我也无法获得第一个命令。

问题

有人能解释一下trustident的区别吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-06-12 14:51:22

“信任”的意思是“无论客户端使用什么用户名,您都不需要询问密码来验证用户”。

“identd”的意思是“接受identd返回的任何用户名,而不要求密码进行验证”。

postgresql站点上有关于不同身份验证方法的更多信息。

为了找出此特定连接失败的原因,您需要检查postgresql日志。可能是您使用的用户名在postgres数据库中不存在,或者可能是其他问题--如果不首先查看日志是不可能知道的。

票数 5
EN

Server Fault用户

发布于 2013-06-12 18:26:54

psql必须用数据库的用户名连接到数据库。当没有用-U选项指定它时,它将OS用户名作为默认值。

所以实际上,psql dbname等同于psql -U $USER dbname

因此,当您被记录为root而没有创建名为root的数据库用户时,这通常会产生以下错误,即使身份验证模式是trust

psql postgres psql:致命:角色"root“不存在

另一方面,如果像这样调用,仍然作为root记录的话,它就可以工作:

psql -U postgres postgres

这是可以的,因为名为postgres的数据库和名为postgres的用户都存在,因为它们是在PostgreSQL安装期间自动创建的。

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/515277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档