如何为 MySQL 中的数据库用户定义 SQL 查询白名单?

How can I define a SQL-query whitelist for a database user in MySQL?

我想限制客户端的数据库访问。如何定义一个明确的SQL查询白名单,只能执行一个数据库用户?

您将执行以下操作:

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

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