我可以禁用 MySQL 中的存储过程、触发器等。
我还想禁用一些在使用 MySQL 的应用程序中未使用的 SQL 语句(例如:UNION);类似于 PHP 的 disable_function
。
有办法做到这一点吗?
最佳答案
不可以,您不能禁用 SQL 中的某些关键字。 MySQL 没有类似于 PHP 的 disable_function
的功能。
您可以通过限制 SQL privileges 来限制用户可以执行的操作您授予该用户。但UNION
没有明显的特权。如果用户可以SELECT
,他们就可以使用UNION
。
您还没有说明您要解决什么问题。我怀疑您正在尝试解决 SQL 注入(inject)问题,因为基于 UNION 的 SQL 注入(inject)攻击是众所周知的。
但如果是这种情况,那么你的解决方法就是错误的。您应该只使用正确的转义或参数化,这将解决大多数 SQL 注入(inject)漏洞的情况。抱歉,但这可能需要您进行代码检查和一些代码编辑。
关于mysql - 是否可以禁用特定的核心 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595246/