【发布时间】:2020-06-16 09:10:08
【问题描述】:
我正在尝试创建一个 PostgreSQL 事件触发器,它会在用户创建任何内容(表、视图、函数、序列...)并将这个新创建的事物的所有者设置为特定角色时触发。
到目前为止,我有一个偶数触发器本身,它会在任何 CREATE 命令上触发:
CREATE EVENT TRIGGER setOwnerToMyRole ON ddl_command_end
WHEN tg_tag LIKE 'CREATE%'
EXECUTE PROCEDURE setOwnerToMyRole();
但我的函数本身有问题:
CREATE FUNCTION setOwnerToMyRole() RETURNS event_trigger LANGUAGE plpgsql
AS $$ BEGIN
ALTER <type> <name> OWNER TO myRole
END; $$;
如何获取类型(如表格、视图等)以及如何获取新创建事物的名称?
编辑: 看看this question 和this question,当然还有CREATE EVENT TRIGGER 和Trigger Procedures,目前这是不可能的:(
【问题讨论】: