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

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

我不知道这是否有可能。我想要的是,当肯定连接建立后,用户将无法使用该连接修改数据。以下是场景:

  1. 连接已建立

  2. 用户运行查询以防止其自身修改。类似于:

    mysql->stop grant insert

  3. 连接运行其常规查询。但修改查询不运行。将会引发错误。

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

    mysql->resume grant insert

我面临的实际问题是,我只有一个用户有权更改数据,但无法创建另一个用户。但是,我还需要一个只读在某些情况下,用户。然后我想是否可以MySQL Server在建立连接时暂时拒绝修改访问。但对于其他连接,用户应该拥有其正常权限。

谢谢你的帮助

答案1

是的,您可以这样做,但是您的 MySQL 用户只有在向该用户授予 G​​RANT OPTION 时才能更改权限。 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

我不建议这么做。

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

相关内容