![使用 pgAdmin III 进行 Ident 身份验证](https://linux22.com/image/524899/%E4%BD%BF%E7%94%A8%20pgAdmin%20III%20%E8%BF%9B%E8%A1%8C%20Ident%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
有没有办法让 pgadmin 为本地用户进行身份认证?如果不必在开发机器上为本地用户设置密码,只需无需密码即可使用 psql 和 pgadmin3,那就太好了。
答案1
Pgadmin 只是将您提供给它的用户名传递给服务器,如果它要求您输入密码,那是因为服务器告诉它您的连接方法需要密码。如果开发机器是 Unix 系统,则将“Host:”字段留空,以便 pgadmin 使用本地 Unix 套接字而不是 TCP 进行连接。
postgresql 服务器的 pg_hba.conf 控制如何识别用户以及何时要求用户提供密码。大多数默认 pg_hba.conf 文件都有以下行:
local all all ident sameuser
这表示“所有”用户与“所有”数据库的“本地”连接都使用“ident sameuser”身份验证方法,这意味着只要您尝试连接的用户名与您登录计算机时使用的用户名匹配,它就会接受无需密码的连接。如果您希望能够使用任何用户名登录而无需密码,您可以将“ident sameuser”更改为“trust”。
如果您的系统用户名与数据库用户名不匹配,postgresql 有一个名为 pg_ident.conf 的单独文件,其中列出了系统用户名及其匹配的数据库用户名以及此映射的名称。为您的开发人员创建条目,并将 pg_hba.conf 中的“sameuser”替换为映射的名称。