PostgreSQL 开始收紧 public 模式访问权限!
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
![]() 特性提交日志撤销从 public 模式创建表的权限,现在由 pg_database_owner 拥有。 这将默认访问控制列表 (ACL) 切换为自 CVE-2018-1058 以来文档所推荐的设置。升级将保留任何旧的所有权和 ACL。之前未采纳 2018 年建议的站点应重新审视。从头开始部署新数据库集群的方案可能需要创建模式、授予更多权限等。外部测试套件可能需要此类更新。 讨论:https://postgr.es/m/20201031163518.GB4039133@rfd.leadboat.com 示例在之前的 PostgreSQL 版本中,默认允许任何用户连接到任何数据库,并在默认创建的 "public" 模式中创建新表(以及视图等)。有一些人认为这会产生安全问题,会将 public 模式删除掉,或者收紧 public 模式的访问权限。 但现在情况发生了变化。在新的 PostgreSQL 版本中,默认情况下,非超级用户账户将无法在非其拥有的数据库的 public 模式中创建表。 让我们来看一下:
上面,我们创建了 test 用户和两个数据库,"x" 数据库由超级用户拥有,以及由 test 用户拥有的 "test" 数据库。 当我们进入两个数据库创建表时,结果如下:
当然,你仍然可以向 public 模式授予所有权限,以保留以前的行为,但默认情况下,将不再允许在属于其他用户的数据库中创建对象。 非常不错的特性。感谢社区的所有相关人员。 参考提交日志:https://git.postgresql.org/pg/commitdiff/b073c3ccd06e4cb845e121387a43faa8c68a7b62 转自:https://mp.weixin.qq.com/s/a_MnPYVxVjeNZIhtSYV5ZA 该文章在 2025/8/19 10:35:16 编辑过 |
关键字查询
相关文章
正在查询... |