【问题标题】:Create insert-only table in PostgreSQL在 PostgreSQL 中创建仅插入表
【发布时间】:2016-06-25 10:56:00
【问题描述】:

在 PostgreSQL (v9.5) 中是否有创建只插入表的 SQL 语句;换句话说,有了写权限就可以添加行,但不能更改现有行?

CREATE TABLE public.newtable

表仅使用INSERT 语句更新,而不使用UPDATE 或DELETE 语句。

【问题讨论】:

  • 不知道表本身,但您总是可以只创建一个在该表上只有插入权限的用户,这将拒绝更新/删除

标签: postgresql


【解决方案1】:

此命令将允许您 REVOKE 任何您可能拥有的权限 GRANTed:

REVOKE ALL ON TABLE newtable FROM PUBLIC;

然后,您需要将 INSERT 权限授予需要插入数据的角色:

GRANT INSERT ON TABLE newtable TO role;

尽管如此,database/schema 的所有者仍然可以为所欲为。因此,您应该考虑为此目的创建一个特定角色。

【讨论】:

    猜你喜欢
    • 2012-10-17
    • 2014-04-08
    • 1970-01-01
    • 2014-03-07
    • 2012-04-07
    • 2010-09-30
    • 2019-05-31
    • 2020-07-13
    • 2015-09-28
    相关资源
    最近更新 更多