Database 数据库灵活性和隐私性、隐藏结构、软件兼容性和';公共';权限
我是最近决定从MySQL迁移到PostgreSQL的人之一,很多旧习惯都被打破了。然而,我想在PostgreSQL中保留MySQL的一些功能 所以主题:Database 数据库灵活性和隐私性、隐藏结构、软件兼容性和';公共';权限,database,postgresql,permissions,schema,Database,Postgresql,Permissions,Schema,我是最近决定从MySQL迁移到PostgreSQL的人之一,很多旧习惯都被打破了。然而,我想在PostgreSQL中保留MySQL的一些功能 所以主题: 用户应该能够在受限命名空间下创建表 默认情况下,一个用户的表不应该对其他用户可见(包括数据、结构、存储过程等等) 或者,应授予用户向其他用户授予权限的权利 新用户的默认权限是无权限(不读,甚至更少写) 保持与不支持模式的应用程序的兼容性 第1点: 在MySQL下,适当的解决方案是允许用户根据“username%”标准创建数据库。在Postgre
这些就是我迄今为止找到的选项/解决方案。为了隐私起见,我可以使用for第5点,牺牲不同数据库中表/模式之间的连接(第1点和第2点),但我仍然想知道解决上述问题的最佳方法是什么,以及将它们付诸实践的最佳方法是什么 说到这里,我洗耳恭听
PS:也欢迎链接到如何实现上述目标的信息。我们最终采用的解决方案如下: 第1点: 每个用户一个数据库。用户可以创建任意数量的表和模式。不可能跨数据库进行连接。另一种方法是在客户机上检索子集并管理结果,这显然不是最有效的方法 第2点: 这可以通过定义给定数据库的特定所有权和权限并删除默认的“公共”行为来实现。这样,只有属于允许组的用户或其所有者才能访问内容 注意:PostgreSQL使用多级权限,这意味着即使数据库由某人拥有,表也可以由其他人拥有 第3点: 可以用它来做 第4点: 没有自动化的方法可以做到这一点。确保这一点的唯一方法是限制对所有现有数据库的“公共”访问 第5点:
基于每个用户使用是唯一的方法,使用多个用户访问不同的模式(在需要时)。显然存在一个问题,即如果不存在具有适当权限的用户,则不了解架构的应用程序无法“访问”其他架构。我们最终采用的解决方案如下: 第1点: 每个用户一个数据库。用户可以创建任意数量的表和模式。不可能跨数据库进行连接。另一种方法是在客户机上检索子集并管理结果,这显然不是最有效的方法 第2点: 这可以通过定义给定数据库的特定所有权和权限并删除默认的“公共”行为来实现。这样,只有属于允许组的用户或其所有者才能访问内容 注意:PostgreSQL使用多级权限,这意味着即使数据库由某人拥有,表也可以由其他人拥有 第3点: 可以用它来做 第4点: 没有自动化的方法可以做到这一点。确保这一点的唯一方法是限制对所有现有数据库的“公共”访问 第5点:
基于每个用户使用是唯一的方法,使用多个用户访问不同的模式(在需要时)。显然存在一个问题,即如果不存在具有适当权限的用户,则不了解架构的应用程序无法“访问”其他架构。因此,如果我正确理解这一点,您希望x用户拥有自己的私有表,但仍然能够跨其他数据库,对吗?“仍然能够跨”您的意思是加入吗?如果是这样,那么是的,这将是我们想要的特性之一。所以如果我理解这个correc