甚至由所有者防止PostgreSQL 9.4上的ALTER TABLE

时间:2016-03-09 15:47:56

标签: postgresql postgresql-9.4

我们正在使用PostgreSQL 9.4。

我们需要阻止用户在桌面上执行ALTER,甚至不是表格的所有者

表的所有者必须“授予”自己执行ALTER的许可。

我想这就像在表的架构上设置'只读标志'。

如果这个表有任何重要性,那么该表将继承自另一个表。

理想的解决方案是允许做一个消息,例如“你不能改变表格,因为......”

这可以实现吗?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

这可能不是你真正想要的,但可能是一个有趣的效果:

创建继承表时,必须将其作为父表的所有者,但您可以更改子表的所有者。新的所有者将无法删除/修改继承的列集,但仍可以更改默认值/检查/触发器/等,并添加新列。

最接近实际需要的方法可能是控制所有者角色的访问:创建一个单独的角色来访问表,并从所有者撤消对数据库的CONNECT权限。