postgresql - 公共架构上新用户的默认权限?
问题描述
我刚刚创建了一个带有附加application
架构的数据库。
对于我们的 Java Spring Boot 应用程序,我使用以下 SQL 脚本创建了一个新角色,用于设置权限:
CREATE USER app_role WITH ENCRYPTED PASSWORD '#########';
GRANT ALL ON SCHEMA application TO app_role;
application
现在我的期望是当我使用这个角色登录时,我只能在模式中创建和删除表。
但是,我也可以在 schema 中创建和修改表public
。
public
架构是否有任何默认权限?
为什么我可以在我没有授予任何权限的模式中创建表?
解决方案
如文档所述public
,模式在 PostgreSQL 中具有特殊作用。
如果您不希望这样(这可能是一个安全问题),您可以REVOKE
选择CREATE
特权,甚至删除模式。
推荐阅读
- javascript - 使用带有 Web Speech API 的语法来造句(正确的方法)
- ios - 表格视图单元格中的 ImageView 没有从前导获取整个宽度
- php - 反序列化购物车数据 - Laravel
- java - 为什么数据库在加载后立即为空
- r - 在R中的highchats中显示y轴上的所有组
- dolphindb - 在dolphindb中,我在启动脚本(startup.dos)中调用了view函数,没有生效,为什么?
- graph - Pytorch 中 Dataloader 的图形输入(networkx)
- node.js - 发送流作为 axios 请求的响应
- c# - C# Linq 表达式无法翻译
- c# - 在 Unity 上运行 Firebase 身份验证时出现错误 CS0012