postgresql表只能通过触发器更新

时间:2017-11-10 06:22:11

标签: postgresql

配置Postgres数据库是否有可能只能通过触发器更新特定的表。我有历史表,由触发器更新,所以我想防止这个表未经授权访问。我希望历史表只能从触发器更新。

3 个答案:

答案 0 :(得分:0)

为了防止对表进行未经授权的访问,您可以使用以下查询将表的所有者更改为应该访问的用户:

alter table yourschema.yourtable owner to youruser;

现在,您可以使用查询禁用所有其他用户的触发器:

alter table yourschema.yourtable disable trigger triggername all;

此处all表示已为所有用户禁用触发器。现在只有所有者才能使用触发器更新表格。

答案 1 :(得分:0)

触发器始终触发定义事件。因此,如果为更新定义了更新触发器,则在启用触发器时,没有人可以在更新期间绕过触发器。

如果您具有访问数据库的不同权限的不同用户组,则应将其映射到数据库中的用户。例如,您可以禁止用户在表上禁用触发器。

答案 2 :(得分:0)

不确定。历史表和具有触发器的表都属于没有登录权限的用户。然后,您将后一个表的权限授予应用程序用户。