gpt4 book ai didi

mysql - 从 MySQL 执行 shell 命令

转载 作者:可可西里 更新时间:2023-11-01 07:33:58 46 4
gpt4 key购买 nike

我知道我要找的可能是一个安全漏洞,但由于我设法在 Oracle 和 SQL Server 中做到了这一点,所以我会试一试:

我正在寻找一种从 MySQL 上的 SQL 脚本执行 shell 命令的方法。如有必要,可以创建和使用新的存储过程。

注意:我不是在寻找 mysql 命令行工具提供的 SYSTEM 命令。相反,我正在寻找这样的东西:

BEGIN IF COND1... EXEC_OS cmd1; ELSE EXEC_OS cmd2; END;

其中 EXEC_OS 是调用我的代码的方法。

最佳答案

这与其说是对问题的回答,不如说是对这种功能的辩护——因此否定了那些会说“你应该做其他事情”或“你为什么要这样做”的人。

我有一个数据库,我试图对其保持严格的规则——我不想在任何地方出现孤儿。参照完整性检查在表级别帮助我解决这个问题,但我必须将一些数据作为文件保存在文件系统中(这是我老板直接命令不在数据库本身中存储任何二进制数据的结果)。

此处显而易见的解决方案是设置一个触发器,该触发器在删除记录时触发,然后自动删除关联的外部文件。

现在,我确实意识到 UDF 可能会提供一个解决方案,但似乎很多 C/C++ 工作只是为了删除一个文件。当然,数据库权限本身至少可以为潜在的攻击者提供一些安全性。

现在,我确实意识到我可以编写一个 shell 脚本或类似的脚本来删除表记录,然后去删除相关文件,但同样,这在数据库本身。正如一位老导师曾经告诉我的那样“业务的规则应该体现在数据库的规则中”。可以清楚地看到,我无法使用 MySQL 强制执行此操作。

关于mysql - 从 MySQL 执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289914/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com