Postgres基于主机的身份验证如何工作?

问题描述 投票:0回答:2

我正在安装需要PostgresQL的DSPACE。

请看这个链接:DSPACE INSTALL

它说:

然后通过编辑pg_hba.conf并添加以下行来加强安全性:

host dspace dspace 127.0.0.1 255.255.255.255 md5. 

我已经在互联网上阅读了上述线路的工作原理。它需要一个连接类型,后跟数据库名称/用户名,后跟IP地址和身份验证方案。

我的问题是:由于dspace用户在本地运行,这不应该是本地(代替主机)连接吗?

有人可以一步一步地告诉我当请求进来时会发生什么吗? dspace用户使用md5提交请求的说明在哪里?

postgresql dspace pg-hba.conf
2个回答
2
投票

DSpace使用JDBC,因此local不适用于它。这里local意味着一种完全不同的进程间连接,它与IP无关,只能解决本地进程:Unix套接字。 JDBC仅使用IP,因此DSpace需要host描述符。

该行尾的那个时期不应该是它的一部分。那里的文件不清楚 - 我已经修好了。

正如Laurenz Albe所说,DSpace没有指定使用MD5密码哈希值。 PostgreSQL服务器根据您在pg_hba.conf中指定的内容控制将尝试的方法。


1
投票

首先,在你的.线末端有一个pg_hba.conf。这是一个语法错误。

是否使用localhost取决于

  • 这个DSPACE使用的是什么API(例如,JDBC不允许UNIX套接字连接)
  • DSPACE正在使用什么连接字符串

如果可以将套接字目录指定为主机名,则可以使用UNIX套接字,这样会更有效。

如果DSPACE使用支持md5身份验证的驱动程序,则过程如下:

  • 客户端向服务器发送与用户和数据库的连接数据包
  • 服务器请求md5身份验证并发送随机“salt”字符串
  • 客户端使用服务器中的salt计算密码的MD5哈希值,并将结果发送到服务器
  • 服务器验证哈希是否正确
© www.soinside.com 2019 - 2024. All rights reserved.