Postgres接受任何密码

时间:2014-01-10 21:15:55

标签: postgresql

我有以下代码连接到我的远程服务器上的数据库(连接脚本驻留在同一台服务器上):

Database::$ErrorHandle = new PDO('pgsql:host=111.222.33.44;dbname=mydatabase;', 'postgres', 'mypassword', $db_settings);

问题是我可以将密码更改为任何内容并且仍然建立连接!严肃地说,到底是什么地方!?!

我的数据库是否可以通过在不同服务器上运行的PHP脚本连接到(让您知道IP和数据库名称)?

我如何强制执行密码,我已经查看了以下堆栈溢出页面,并按照他们的说法做了但仍然没有运气: How to change PostgreSQL user password?

我正在使用PHP 5.5和Apache2

运行Ubuntu 12.04服务器

1 个答案:

答案 0 :(得分:9)

当然,您的postgresql数据库可以正确配置为仅与特定用户(Postgres中的角色)中的某些IP /套接字连接经过身份验证的用户。

一些注意事项:

  • 你看到数据吗?或者你可以连接到服务器?你能列出数据库吗?

  • 查看您的pg_hba.conf并根据每个数据库的每个角色设置适当的权限

  • 您是否向所有人授予了对mydatabase的访问权限?您授予哪些角色访问权限?

  • 数据库是否在公共方案中有其表格?并获准进入公众?

  • 是的,使用此配置,知道您的IP和数据库名称的每个人都可以连接到您的数据库。