You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 12.14撤销public schema的CREATE权限无效,如何禁止只读用户建表?

解决PostgreSQL只读用户仍能在public schema创建表的问题

问题出在PostgreSQL的默认权限配置上:所有新建用户默认都会加入内置的public角色,而PostgreSQL默认给public角色授予了public schema的CREATE权限。你单独撤销user1的CREATE权限,但public角色的权限依然会让user1获得创建表的权限。

按照以下步骤修复:

  • 撤销public角色在public schema的CREATE权限
    REVOKE CREATE ON SCHEMA public FROM public;
    
  • 验证效果:切换到user1执行建表语句,此时会提示权限不足,达到禁止创建的目的。
  • 超级用户不受影响:superuser默认拥有所有权限,仍然可以正常在public schema执行各类操作。

如果后续需要让其他用户在public schema创建对象,可单独授予权限:

GRANT CREATE ON SCHEMA public TO 指定用户名;

内容的提问来源于stack exchange,提问作者M Shen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:39:57