场景是这样。
一个库 owner 是 user
几个开发者 只有只读和建表删表权限 usera/userb
开发者自己建的表会自动 owner 给自己。导致其他人没权限。
阿里云 rds-pg 。有什么解决方案?
1
encro 34 天前
采用统一的 migrate 命令,用统一的账户,没必要每个用户开不同的数据库账号吧。
|
3
abolast 34 天前 1
dev 环境开全权限,test 开只读,导入导出让运维帮忙,生成的话只允许提交 sql 到仓库,自动化程序来执行(交给高权限的人来呗,运维开发个程序给高权限的人用)
|
4
adoal 34 天前
数据库的 owner 是一种角色,有义务为别人设置权限,不论它的岗位是不是专职 dba
|
5
xiaogu2014 34 天前
可以考虑用一些 migration 的方式。比如 java 的 flyway 之类的。可以手动 trigger/自动随着部署 trigger 。
以及用户更改表的权限 revoke 吧。 保留修改数据的。所有更改表的都通过上面的 migration 的方式进行。 |
6
xuanbg 34 天前
都只管自己不管别人的是吧。数据库表应该有专人管理维护的呀,不然还不得乱了套。
|
7
dzdh OP 没法像 mysql 那样 按 db 给权限吗 下面的表自动继承
|
8
dk7952638 34 天前
casbin, 支持非常多的权限模型
|
9
panxiuqing 34 天前
@dzdh #7 mysql 的 db 不是对应 pg 的 schema 吗。
|
10
dzdh OP @panxiuqing 那 pg 可以给 schema 弄个权限或 owner 然后所有在这个 schema 里操作都继承么
|
11
panxiuqing 34 天前
@dzdh #10 schema 有 owner ,schema 的 owner 可以决定其他 user 在 schema 中的权限,schema 中 table 的 owner 默认是 table 的创建人。
|
12
dzdh OP @panxiuqing #11 如果把 schema 的 owner grant 给其他 user 。那其他 user 在这个 schema 里建的 table ,其他被 grant 过的 user 们 能操作这个 schema 里其他 user 创建的 table 吗?
|
13
panxiuqing 34 天前
@dzdh #12 table 不会自动继承 schema “本身”的权限,可以设置 schema 内的默认权限(也只影响新建的表)。
|