public 架构上新用户的默认权限?
Default privileges for new users on public schema?
我刚刚创建了一个带有附加 application
架构的数据库。
对于我们的 Java Spring 引导应用程序,我使用以下 SQL 脚本创建了一个新角色来设置权限:
CREATE USER app_role WITH ENCRYPTED PASSWORD '#########';
GRANT ALL ON SCHEMA application TO app_role;
现在我的期望是,当使用此角色登录时,我只能在模式 application
中创建和删除表。
不过,我也可以在模式 public
中创建和修改表。
public
架构是否有任何默认权限?
为什么我可以在我没有授予任何权限的模式中创建表?
public
模式在 PostgreSQL 中具有特殊作用,如 the documentation 所述。
如果您不希望这样(这可能是一个安全问题),您可以 REVOKE
CREATE
权限,甚至可以删除架构。
我刚刚创建了一个带有附加 application
架构的数据库。
对于我们的 Java Spring 引导应用程序,我使用以下 SQL 脚本创建了一个新角色来设置权限:
CREATE USER app_role WITH ENCRYPTED PASSWORD '#########';
GRANT ALL ON SCHEMA application TO app_role;
现在我的期望是,当使用此角色登录时,我只能在模式 application
中创建和删除表。
不过,我也可以在模式 public
中创建和修改表。
public
架构是否有任何默认权限?
为什么我可以在我没有授予任何权限的模式中创建表?
public
模式在 PostgreSQL 中具有特殊作用,如 the documentation 所述。
如果您不希望这样(这可能是一个安全问题),您可以 REVOKE
CREATE
权限,甚至可以删除架构。