PostgresSQL如何安装第三方插件?

您所在的位置:网站首页 微信第三方插件下载不了软件 PostgresSQL如何安装第三方插件?

PostgresSQL如何安装第三方插件?

2024-07-09 13:51| 来源: 网络整理| 查看: 265

第三方插件安装 进入第三方插件源码目录中,定义PATH或者PG_CONFIG环境变量 # 示例,将pg的bin目录export PATH: export PATH=/data/postgres/13/bin:$PATH # 或者 export PG_CONFIG=/data/postgres/13/bin/pg_config 编译安装 gmake && gmake install

gmake install后会在pg安装目录下的share/postgresql/extension生成.control(插件信息的的控制文件)和.sql文件(插件脚本文件).

创建插件 -- 超级用户登录pg执行create extension,这一步操作实际就是执行插件sql脚本文件,在库中创建一些对象 create extension xxx; -- 另外,也可以直接将插件源码sql导入到库中。

有些插件在make install后、create extension之前,需要在postgresql.conf中配置shared_preload_libraries,然后重启实例再创建插件

通过pg_available_extensions表可查看实例已经安装(make install)的插件,\dx查看已经创建的插件 create extension权限

一般只有具有superuser的用户才能create extension,少数插件不需要superuser权限、只需要database owner就可以创建,例如:plpgsql。这个是由插件的*.control 文件中的superuser (boolean)参数决定(参数默认true,即需要superuser权限)。 由此,是不是把插件的*.control 文件中的superuser (boolean)参数修改为false后,是不是就不需要superuser就能create extension了呢? 还需要以下条件:

该用户能够执行插件脚本中的所有命令 脚本文件语言是trusted的(select lanname,lanpltrusted from pg_language; 可以查看language),或者会报错:ERROR:  permission denied for language c 。当然可以修改pg_language.lanpltrusted为't'来更改语言的truste状态,但极其不建议,有安全风险。 备库插件

主库create extension插件,会同步在备库创建;如果某些插件需要额外的库文件(需要配置shared_preload_libraries),则需要在备库手动安装。

参考

# PgSQL · 内核开发 · 如何管理你的 PostgreSQL 插件 PostgreSQL: Documentation: 16: 38.17. Packaging Related Objects into an Extension



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3