Postgresql共享库预加载(Shared Library Preloading)
PostgreSQL支持通过动态库的方式扩展PG的功能,pg在使用这些功能时需要预加载相关的共享库。
有几种设置可用于将共享库预加载到服务器中,如下
- local_preload_libraries (string)
- session_preload_libraries (string)
- shared_preload_libraries (string)
1、local_preload_libraries (string)
-
用户建立连接时加载
,通常使用客户端上的 PGOPOPS 环境变量或使用 ALTER 角色 SET 设置此参数。 - 任何用户都可以设置此选项,因此限定只能加载$libdir/plugins下面的so文件。可以显示的指定目录,如$libdir/plugins/passwordcheck;或者只指定库的名字,如passwordcheck。其会自动到$libdir/plugins/中搜索
postgres=> alter role test set local_preload_libraries=passwordcheck;
ALTER ROLE
postgres=> alter role test set local_preload_libraries='$libdir/plugins/passwordcheck';
ALTER ROLE
2、session_preload_libraries (string)
-
用户建立连接时加载
这个参数只允许超级用户修改 - 能动态加载所有目录下面的so文件,如果未指定相对目录,自动到dynamic_library_path指定的目录中搜索so