postgresql - 在 Postgres 中共享来自 2 个用户的序列
问题描述
在数据库服务器 Postgres 9.x 或 Postgres 10.x 中,我可以从 2 个用户共享相同的序列吗?
例如在同一个数据库 dbTest 中有 2 个模式
- userA 是模式所有者 schemaA 具有序列 A
- userB 是架构所有者 schemaB
userB 可以使用 sequenceA 序列吗?什么是许可证?
解决后有以下情况:
userA: select nextval('sequenceA');
userB: select nextval('schemaA.sequenceA');
如果我也想要 userB:选择 nextval('sequenceA');
有解决办法吗?
解决方案
您在描述中对“schema”和“db”的使用有点难以理解,但以上仅适用于同一个数据库。
以下仅适用于模式(在同一数据库中)。
如手册中所述,您需要授予序列的 USAGE 权限:
grant usage on sequence schema_a.sequencea to userb;
如果您想允许userb
更新当前值(通过setval()
),您还需要授予update
权限。
推荐阅读
- python - ModuleNotFoundError:在 vscode 中没有名为“tensorflow”的模块
- apache-flink - Apache Flink 生产集群详情
- python - Tensorflow - 内核似乎已经死了。它会自动重启
- android - 未解决的参考:引擎(WallpaperService)
- javascript - 验证数字 if 语句 JavaScript
- scala - 在 Scalatest 中使用访问修饰符测试私有方法
- node.js - 无法在 cron 作业中运行 npm
- r - `E<-`(`*tmp*`, value = `*vtmp*`) : 无效索引,构建 OSM 对象的子集。编辑:子集不会创建真正的子集
- php - Laravel - 未定义的属性:stdClass - 搜索查询
- flutter - 当其中一个孙子小部件在颤动中输入TextField时,如何调整堆栈的所有子小部件的大小或移动它