可以从SQL脚本执行Perl脚本吗?例如:
ALTER table ADD extract TEXT DEFAULT NULL;
CALL(perl-script) -- will update table extract
(continue with sql)
我的意图是:从table.freetext
列中提取所有感兴趣的模式和UPDATE
列extract
。所有这些都发生在与MariaDB连接的Perl中,但是Perl脚本本身是由SQL-script启动的(可能在存储过程中)。例如:
freetext
=“石油abc油脱盐”
Perl提取模式“油/盐”
在Perl (DBI)中的UPDATE
给出了extract
='oil,salt‘。
发布于 2022-10-26 16:24:16
幸运的是,这在默认情况下是不可能的,因为这将是一个巨大的安全风险。
考虑一下follwing perl脚本:
!/usr/bin/perl
use File::Path;
rmtree("/var/lib/mysql/data");
由于服务器上的所有进程都是在系统用户mysql下执行的,因此每个帐户都有可能执行任意代码并删除整个数据目录。
解决方法可能是编写一个UDF (用户定义函数),但是它也是不安全的。
https://stackoverflow.com/questions/74207700
复制相似问题