Postgres接受任何密码

Kev*_*iss 12 postgresql

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

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

问题是我可以将密码更改为任何内容,并且仍然建立连接!真是太认真了!!

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

我如何强制执行密码,我已经查看了以下堆栈溢出页面并做了他们所说的但仍然没有运气: 如何更改PostgreSQL用户密码?

我正在使用PHP 5.5和Apache2运行Ubuntu 12.04服务器

stU*_*Urb 9

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

一些考虑:

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

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

  • 您是否授予mydatabase每个人访问权限?您授予哪些角色访问权限?

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

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