如何暂时更改MySQL用户权限(每个连接)

我不知道是否有可能。 我想要的是,当build立某个连接时,用户将无法使用该连接修改数据。 这是场景:

  1. 连接已完成
  2. 用户运行查询以防止自己修改。 就像是:

    mysql->stop grant insert

  3. 连接运行其通常的查询。 但修改查询不运行。 一个错误将被抛出。

  4. 用户运行查询重置为初始状态:

    mysql->resume grant insert

我面临的实际问题是,我只有一个用户有权更改数据,但无法创build另一个用户。 但是,在某些场合我也需要一个只读用户。 然后我想,有可能告诉MySQL Server在连接时临时拒绝修改访问。 但是对于其他连接,用户应该拥有他的正常特权。

感谢您的帮助

是的,你可以这样做,但是如果授予给用户GRANT OPTION,你的MySQL用户只能修改权限。 http://dev.mysql.com/doc/refman/5.7/en/grant.html

另请参阅撤销http://dev.mysql.com/doc/refman/5.7/en/revoke.html

语法是:

 REVOKE INSERT ON database.* FROM your user grant insert on database.* from your user 

我不build议这样做。

如果你需要分离权限,例如读/写和只读,那么你应该有两个用户帐户。