首页 > 解决方案 > 公共架构上新用户的默认权限?

问题描述

我刚刚创建了一个带有附加application架构的数据库。

对于我们的 Java Spring Boot 应用程序,我使用以下 SQL 脚本创建了一个新角色,用于设置权限:

CREATE USER app_role WITH ENCRYPTED PASSWORD '#########';

GRANT ALL ON SCHEMA application TO app_role;

application现在我的期望是当我使用这个角色登录时,我只能在模式中创建和删除表。

但是,我也可以在 schema 中创建和修改表public

public架构是否有任何默认权限?

为什么我可以在我没有授予任何权限的模式中创建表?

标签: postgresqlprivileges

解决方案


文档所述public,模式在 PostgreSQL 中具有特殊作用。

如果您不希望这样(这可能是一个安全问题),您可以REVOKE选择CREATE特权,甚至删除模式。


推荐阅读