是否可以從 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 腳本啟動的(可能在存盤程序中)。例如:
freetext='油 abc 油 def 鹽'
Perl 提取模式“油|鹽”
UPDATE在 Perl (DBI) 中給出extract='oil,salt'。
uj5u.com熱心網友回復:
幸運的是,默認情況下這是不可能的,因為這會帶來巨大的安全風險。
考慮以下 perl 腳本:
!/usr/bin/perl
use File::Path;
rmtree("/var/lib/mysql/data");
由于服務器上的所有行程都在系統用戶“mysql”下執行,因此每個帳戶都有可能執行任意代碼并洗掉您的整個資料目錄。
一種解決方法可能是撰寫 UDF(用戶定義函式),但它也是不安全的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521567.html
