postgresql - 共享对象 (.so) 文件 postgresql 的权限被拒绝

标签 postgresql shared-libraries

我正在尝试将 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/

相关文章:

sql - Postgresql:如何合并 2 个查询

c# - 为什么 List<float>.Sum() 和手动数字求和在 C# 中给出不同的结果?

linux - 在 ELF 库文件名中,主要版本和次要版本在兼容性方面有多重要?

node.js - 在 node.js 中使用 pg-postgres 的正确方法?

django - 将 PostgreSQL 中的现有 JSON 字段转换为在 PostGIS 中使用

c++ - 如何在主程序中解析共享库的外部符号?

将应用程序复制到另一台机器,找不到共享库

c++ 链接器错误 'relocation R_X86_64_32 against ` .rodata.str1.1' Linking CXX shared library libsrt.so

postgresql - Postgres 异常错误 : syntax error at or near ":" Position: 46

postgresql - 如何在 Postgres 中使用外键和关系表删除子记录