Postgresql Postgres接受任何密码
我有以下代码连接到远程服务器上的数据库(连接脚本位于同一服务器上): 问题是,我可以将密码更改为任何形式,但连接仍然存在!说真的,见鬼 我的数据库可以由运行在不同服务器上的PHP脚本中的任何人连接到(如果您知道IP和db名称)吗 如何强制执行密码,我已经查看了下面的堆栈溢出页面,并按照他们说的做了,但仍然没有成功:Postgresql Postgres接受任何密码,postgresql,Postgresql,我有以下代码连接到远程服务器上的数据库(连接脚本位于同一服务器上): 问题是,我可以将密码更改为任何形式,但连接仍然存在!说真的,见鬼 我的数据库可以由运行在不同服务器上的PHP脚本中的任何人连接到(如果您知道IP和db名称)吗 如何强制执行密码,我已经查看了下面的堆栈溢出页面,并按照他们说的做了,但仍然没有成功: 我正在运行带有PHP5.5和Apache2的Ubuntu12.04服务器。当然,您的postgresql数据库可以正确配置为仅与经过身份验证的用户连接,即使是来自特定IP/套接字的
我正在运行带有PHP5.5和Apache2的Ubuntu12.04服务器。当然,您的postgresql数据库可以正确配置为仅与经过身份验证的用户连接,即使是来自特定IP/套接字的特定用户(Postgres中的角色) 一些考虑:
- 你看到数据了吗?或者你可以直接连接到服务器吗?你能列出数据库吗
- 查看您的应用程序,并根据每个角色、每个数据库、每个源设置适当的权限
- 您是否向所有人授予访问
的权限?您授予了哪些角色访问权限mydatabase
- 数据库的表是否在公共方案中?允许公众进入
- 是的,通过此配置,每个知道您的IP和数据库名称的人都可以连接到您的数据库
host all 111.222.33.44/24 trust
,并将其更改为host all 111.222.33.44/24 md5
,现在我的密码工作正常。当我认为你的答案正确时,我会把它标记为正确的。很乐意帮忙。是否只允许本地连接?或者您是否希望远程用户使用数据库(具有正确的凭据?)如果是,请查看本地
行,而不是基于主机的连接。只有我有权访问服务器(希望如此),因此我不太在意远程连接。什么是我拥有的基于主机的连接?那么,您是说local
行正在处理远程连接吗?似乎有点像谎言。。。(虽然我很确定这不是谎言,我只是个白痴哈哈)Local=本地连接/套接字<代码>主机tcp/ip连接。如果您仅从服务器运行的机器(例如通过WP站点)访问数据库,则不要使用主机行。因此,如果不需要远程IP连接到数据库服务器,请评论主机行!好的,我现在就做。peer
是什么意思?
Database::$ErrorHandle = new PDO('pgsql:host=111.222.33.44;dbname=mydatabase;', 'postgres', 'mypassword', $db_settings);