如何为 MySQL 中的数据库用户定义 SQL 查询白名单?
How can I define a SQL-query whitelist for a database user in MySQL?
我想限制客户端的数据库访问。如何定义一个明确的SQL查询白名单,只能执行一个数据库用户?
您将执行以下操作:
- 删除用户所有表的读取权限。
- 为每个允许的查询定义视图。
- 确保视图的安全性声明为
DEFINER
而不是 INVOKER
。
瞧!用户可以访问视图,但不能访问基础表。
我想限制客户端的数据库访问。如何定义一个明确的SQL查询白名单,只能执行一个数据库用户?
您将执行以下操作:
- 删除用户所有表的读取权限。
- 为每个允许的查询定义视图。
- 确保视图的安全性声明为
DEFINER
而不是INVOKER
。
瞧!用户可以访问视图,但不能访问基础表。