Postgres角色最佳实践实施
民间, 我可以借助您的帮助使我的Postgres用户访问控制设计更好,并与最佳实践保持一致。我正在帮助推出一个小型生产Postgres服务器,但我不是数据库管理员,所以我知道足够危险。 一台服务器安装了Postgres v9.2。此安装托管多个数据库,每个数据库完全服务于不同的“客户”。换句话说,customer1不会,不应使用database2,依此类推。在正常操作期间,每个数据库都由一个匹配的CakePHP实例进行访问,这些实例均与Postgres位于同一服务器上。尽管可能会对这种部署进行优化,但我对Psql角色最感兴趣。 根据我的读物,似乎三种类型的角色是有意义的: 具有非默认密码的超级用户postgres 不具有用于日常维护,数据库创建,备份和还原的超级用户特权的管理员角色。应该能够对所有客户数据库执行任何操作。 仅具有在各自数据库中进行CRUD的能力的用户角色。如果清理实现,则可以容忍他们自己的DB拥有更多权限。 实施该设计使我信心不足。数据库与表的所有权以及谁应该继承谁的所有权有些混乱。以下是我的数据库和用户。是否有足够的信息来评估实施? Role name | Attributes | Member of -----------+------------------------------------------------+------------------- admin | Create role, Create DB | {user1, user2} postgres | Superuser, Create role, Create DB | {} user1 | | {} user2 | | {} postgres=# \l List of databases Name | …