在PostgreSQL中创建只能插入的表格

12

PostgreSQL(v9.5)中是否有一种SQL语句可以创建一个只允许插入的表,也就是说,具有写入权限可以添加行,但不可能更改现有行?

CREATE TABLE public.newtable

只有使用INSERT语句才能更新表,不能使用UPDATEDELETE语句。


1
我不知道这个表本身,但你可以创建一个用户,只赋予他在该表上的插入权限,这将拒绝更新和删除。 - Marc B
1个回答

19
该命令将允许您撤销您可能已经授予的任何权限:

该命令将允许您撤销您可能已经授予的任何权限:

REVOKE ALL ON TABLE newtable FROM PUBLIC;

接下来,您需要向需要插入数据的角色授予INSERT权限:

GRANT INSERT ON TABLE newtable TO role;
尽管如上所述,数据库/模式所有者仍然可以自行决定。 因此,您应该考虑为此目的创建特定角色。

尽管如上所述,数据库/模式所有者仍然可以自行决定。因此,您应该考虑为此目的创建特定角色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接