postgresql - Postgres 接受任何密码

标签 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 服务器

最佳答案

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

一些注意事项:

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

  • 看看你的pg_hba.conf并设置适当的权限,每个角色每个数据库每个来源

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

  • 数据库在公共(public)方案中有表吗?并授予公众访问权?

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

关于postgresql - Postgres 接受任何密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054549/

相关文章:

java - Spring Boot - Jpa 独特且可分页

node.js - pg 池 - 使用具有超时功能的 pg 池的正确方法是什么

python - 将 Django Web 应用程序数据库连接到 Pythonanywhere 上的 postgresql

python - 将选择分组依据的结果复制到表中

ruby-on-rails - postgres 中的小数列。有没有一种方法可以存储没有尾随零的值

python - psycopg2:如何在 python 脚本中执行真空 postgresql 查询

postgresql - 计算不同记录之间的时间差

sql - 根据列的当前值更新列

postgresql - 如何在 JPA 中映射整数数组

SQL - 组合多个类似的查询