首页 > 解决方案 > 如何在 MySQL 中为数据库用户定义 SQL 查询白名单?

问题描述

我想限制客户端的数据库访问。如何定义 SQL 查询的显式白名单,女巫只能执行数据库用户?

标签: mysqlsqlsql-injection

解决方案


您将执行以下操作:

  1. 删除用户所有表的读取权限。
  2. 为每个允许的查询定义视图。
  3. 确保视图的安全性声明为DEFINER而不是INVOKER.

瞧!用户可以访问视图,但不能访问基础表。


推荐阅读