0
我有一个要求,我必须禁止除一个用户(即user1)以外的所有用户删除表记录。所以为此,我使用了如下的触发器。防止删除一个用户的表记录,并允许在postgresql中删除另一个用户
CREATE OR REPLACE FUNCTION prevent_deletion() RETURNS trigger AS $$
declare
cur_user varchar(30);
BEGIN
Select current_user into cur_user;
IF cur_user != 'user1' THEN
RAISE EXCEPTION 'You cannot delete records from this table!';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
触发器正在阻止删除除user1以外的用户的表记录,这很好,但不适用于用户user1。我的意思是它不删除user1的表记录。
我在哪里错了我的代码?
在此先感谢。
什么是postgres版本? –
https://www.postgresql.org/docs/9.5/static/sql-createpolicy.html观看行级安全 –
@VaoTsun它的9.5 – Suniel