我试图将C语言函数导入我的postgresql数据库。
我的主目录中有我的共享对象,但我无法在我的数据库中使用它。
CREATE OR REPLACE FUNCTION add_one(integer) RETURNS integer AS '/home/pedro/.../.../example.so', 'add_one' LANGUAGE C STRICT;
这是我的错误信息:
ERROR: could not access file "/home/pedro/.../.../example.so": Permission denied
我认为可能是我的操作系统阻止访问此文件,但我不想向所有用户授予权限。
tl;博士:我正在寻找一个优雅的解决方案,在我的postgresql数据库中导入我的C语言函数,作为共享对象文件。
提前致谢!
答案 0 :(得分:2)
您需要授予postgres用户权限,因为这是数据库运行的用户。请注意,您可以授予向数据库用户运行该功能的权限(默认情况下,除非您撤消公共访问权限,否则他们可能拥有该功能)。