我刚刚使用附加的application
模式创建了一个数据库。
对于Java Spring Boot应用程序,我使用以下SQL脚本创建了一个新角色来设置特权:
CREATE USER app_role WITH ENCRYPTED PASSWORD '#########';
GRANT ALL ON SCHEMA application TO app_role;
现在,我的期望是,以该角色登录时只能在模式application
中创建和删除表。
但是,我还能够在模式public
中创建和修改表。
public
模式有默认权限吗?
为什么要在未授予任何特权的架构中创建表?
答案 0 :(得分:0)
the documentation描述了public
模式在PostgreSQL中的特殊作用。
如果您不希望这样做(这可能是一个安全问题),则可以REVOKE
享有CREATE
特权,甚至可以完全放弃该模式。