你可以使用 PL/Perl 中的库吗

发布于 2024-09-15 17:18:08 字数 132 浏览 8 评论 0原文

我只是好奇在编写 PL/Perl 函数时是否可以使用 use My::Lib; 语句,或者启用 pragma 和功能(例如 'use strict; use feature 'switch ';)。

I'm just curious if when writing PL/Perl functions if I can have a use My::Lib; statement, or enable pragma's and features (e.g. 'use strict; use feature 'switch';).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小兔几 2024-09-22 17:18:08

使用 PL/Perl 时则不然。它限制了 require 和 use 的使用,因此不能导入模块。但是,您可以安装 PL/Perlu(用于无限制模式),它允许您加载模块。

然而,plperlu 可以被视为存在安全风险,因为它还允许打​​开等文件系统命令。

Not when using PL/Perl. It restricts the use of require and use, so you cannot import modules. However, you can install PL/Perlu (for unrestricted mode) which allows you to load modules.

plperlu can be considered a security risk, however, as it also allows filesystem commands such as open.

过气美图社 2024-09-22 17:18:08

出于安全目的,您不能在 plperl 下的函数内运行 use/require 语句,但可以在 plperlu 下运行。

如果您想以安全的方式使用模块,可以将 plperl.on_init = 'require "myperlinit.pl";' 添加到 postgresql.conf 文件中,然后创建数据目录中包含一个名为 myperlinit.pl 的 Perl 脚本,其中包含您的用途。这将需要重新启动数据库服务器,并且这些模块可供您的所有功能使用。

如果你想开启严格模式,你可以通过plperl.use_strict = true来添加它。

注意:当调用第一个 perl 函数时(而不是创建连接时),每个连接都会执行该脚本一次。

For security purposes you cannot run a use/require statement within a function under plperl, but you can under plperlu.

IF you want to use modules in a secure way, you can add plperl.on_init = 'require "myperlinit.pl";' to the postgresql.conf file, then create a perl script called myperlinit.pl in the data directory which contains your uses. This will require a restart of the database server and these modules are available to all of your functions.

If you want strict mode turned on, you can plperl.use_strict = true will add it.

Note: this script is executed once per connection when the first perl function is called, and not when the connection is created.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文