我正在尝试将 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;dr:我正在寻找一个优雅的解决方案来将我的 C 语言函数作为共享对象文件导入到我的 postgresql 数据库中。
提前致谢!
最佳答案
您需要授予 postgres 用户权限,因为该用户是运行数据库的用户。请注意,您随后可以向数据库用户授予运行该函数的权限(默认情况下,除非您撤消公共(public)访问权限,否则他们可能拥有该权限)。
关于postgresql - 共享对象 (.so) 文件 postgresql 的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006666/