我正在尝试在 Linux 上创建一个用 Perl 编写的 PostgreSQL 触发器,它应该执行基于外部库的代码。包含触发器的 SQL 脚本如下所示:
CREATE OR REPLACE FUNCTION notify_mytable_update() RETURNS trigger AS $$
use lib "full_path_to_lib_dir";
use MyModule;
return;
$$ LANGUAGE plperlu
SECURITY DEFINER
SET search_path = myschema, public, pg_temp;
DROP TRIGGER IF EXISTS notify_mytable_update ON mytable;
CREATE TRIGGER notify_mytable_update AFTER UPDATE ON mytable
FOR EACH ROW
EXECUTE PROCEDURE notify_mytable_update();
这样做的问题是,每当我尝试使用此脚本时,psql
我都会在 Perl 代码中收到权限被拒绝错误,以便访问MyModule
. 完全访问我的主目录postgres
并没有帮助。
先感谢您!