当我尝试使用DBI进行连接时出现以下错误 DBI connect('database = chaosLRdb; host = 192.168.0.1; port = 5433','postgres',…) 失败:致命:没有pg_hba.conf项为主机“192.168.0.1”,用户“postgres”,数据库“chaosLRdb”,SSLclosures 这是我的pg_hba.conf文件: # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 host all postgres 127.0.0.1/32 trust host all postgres 192.168.0.1/32 trust host […]
我试图创build一个Postgres数据库,所以这可能是一个愚蠢的问题。 我分配了基本的只读权限的数据库angular色,必须从我的PHP脚本访问数据库,我有一个好奇心:如果我执行 GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role; 有没有需要执行也 GRANT USAGE ON SCHEMA schema TO role; ? 从文档 : 用法:对于模式,允许访问包含在指定模式中的对象(假设对象自己的特权要求也被满足)。 本质上这允许被授权者在模式中“查找”对象。 我认为,如果我可以select或操纵模式中包含的任何数据,我可以访问模式本身的任何对象。 我错了吗? 如果不是,那么GRANT USAGE ON SCHEMA上使用哪些GRANT USAGE ON SCHEMA ? 那么这个文档究竟意味着什么呢?“假设对象本身的特权要求也得到了满足”?
在对我的问题之一发表评论之后,我在想如果使用1个带有X模式的数据库更好,反之亦然。 我的情况:我正在开发一个networking应用程序,当人们注册时,我创build(实际)一个数据库(不,它不是一个社交networking:每个人都必须能够访问自己的数据,而不会看到其他用户的数据)。 这就是我用于以前版本的应用程序(仍然在mysql上运行)的方式:通过plesk API,对于每个注册,我都这样做: 创build具有有限权限的数据库用户; 创build一个可以被上一个创build的用户和超级用户访问的数据库(用于维护) 填充数据库 现在,我需要做同样的postgresql(该项目正在成熟和MySQL ..不满足所有的需求) 我需要使所有的数据库/模式备份独立:pg_dump完美地以两种方式工作,对于可以configuration为只访问1个模式或1个数据库的用户来说,pg_dump是完全相同的。 所以,假设你的用户比我更有经验,那么你认为最适合我的情况是什么?为什么? 使用$ x db而不是$ x schemas会有性能差异吗? 未来维护什么解决scheme会更好(可靠性)? 编辑 :我差点忘了:我所有的数据库/模式将始终具有相同的结构! 编辑2 :对于备份问题(使用pg_dump),使用1分贝和许多模式,一次转储所有模式可能会更好:恢复将是非常简单的在开发机器中加载主转储,然后转储和恢复所需的架构:还有一个额外的步骤,但是倾销所有的模式似乎更快,然后一个接一个地抛弃它们。 ps:对不起,如果我在文本中忘记了一些“W”字符,我的键盘遭受了这个button;) 更新2012年 那么最近两年的应用程序结构和devise就变得如此之多。 我仍然使用1 db with many schemas方法,但仍然,我有我的应用程序的每个版本 1数据库: Db myapp_01 \_ my_customer_foo_schema \_ my_customer_bar_schema Db myapp_02 \_ my_customer_foo_schema \_ my_customer_bar_schema 对于备份,定期转储每个数据库,然后在dev服务器上移动备份。 我也使用PITR / WAL备份,但是,正如我之前所说,它不可能一次恢复所有的数据库 ..所以它可能会被解雇今年(在我的情况是不是最好的办法)。 从现在开始,即使应用程序结构完全改变,1-db-many-schema方法对我来说效果也不错: 我差点忘了:我所有的数据库/模式将始终具有相同的结构! …现在,每个模式都有自己的结构,对用户数据stream作出反应。