PostgreSQL - Python - 触发器 - 访问 current_user
PostgreSQL - Python - Trigger - Access to current_user
我正在用 plPython 编写审计触发器。我不知道如何访问 current_user 变量。可以通过 plpy 以某种方式获得吗?
我也想知道是否可以将变量传递给触发器函数?如果是这样,这是怎么做到的?我试过了:
create trigger stock_sys_audit before insert or update or delete on stock_tbl
FOR EACH ROW EXECUTE PROCEDURE sys_audit(current_user);
但它不起作用。
谢谢。
您只能通过 SQL 访问所有 Postgres 功能和设置。使用 plpy.execute(),
示例:
create or replace function py_current_user()
returns text language plpython3u
as $$
res = plpy.execute("select current_user")
return res[0]["current_user"]
$$;
select py_current_user();
py_current_user
-----------------
postgres
(1 row)
我正在用 plPython 编写审计触发器。我不知道如何访问 current_user 变量。可以通过 plpy 以某种方式获得吗?
我也想知道是否可以将变量传递给触发器函数?如果是这样,这是怎么做到的?我试过了:
create trigger stock_sys_audit before insert or update or delete on stock_tbl
FOR EACH ROW EXECUTE PROCEDURE sys_audit(current_user);
但它不起作用。
谢谢。
您只能通过 SQL 访问所有 Postgres 功能和设置。使用 plpy.execute(),
示例:
create or replace function py_current_user()
returns text language plpython3u
as $$
res = plpy.execute("select current_user")
return res[0]["current_user"]
$$;
select py_current_user();
py_current_user
-----------------
postgres
(1 row)