mysql - 是否可以禁用特定的核心 SQL 语句?

标签 mysql

我可以禁用 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/

相关文章:

php - 从 laravel 5.1 中的多个表中获取多行数据

MySQL:如何在 boolean/tinyint 列上创建部分索引?

MySQL 将属性分组在一起

php - MySQL 到嵌套 JSON

mysql - 数据库设计-自定义属性表- "relate"实体表

mysql - 在 "IN"运算符内使用子查询?

MySQL 使用 GROUP BY 对结果进行排名

python - 加入 Django View

MySQL语句,当某列没有结果时如何显示

php - 需要帮助比较和添加多维数组中的唯一数据