分析MySQL查询日志以查找适当的权限

一个客户的服务器只设置一个用户,拥有全局的权限去做所有的事情。 我们希望将其更改为每个应用程序的一个用户,并具有最低的必要权限。

要做到这一点,在不破坏任何东西的情况下,我们想分析查询日志,找出执行哪种types的查询。 有这样的工具吗?

最好是说只有SELECTINSERTUPDATEDELETE已经被执行了,我们可以删除所有其他的权限。

没有工具可以分析一个查询日志,并告诉你现在和现在将运行什么,只是因为没有办法知道查询日志是否是所有可能生成的查询的详尽列表由软件。
您需要查看执行查询的实际代码以作出此决定。

如果您无法访问实际的代码,那么在您的情况下最好的做法是创build只能访问特定应用程序所需的数据库的每个应用程序帐户,并且不能运行任何DDL语句 -这至less可以消除Little Bobby Tables问题(坦率地说,任何代码运行DDL语句的系统都可能从根本上被打破,需要仔细重新评估适当的权限隔离)。

在你的开发环境(你确实有一个,对吧?)做这个testing,确保你的应用程序正常工作。 特别要警惕您可能无法捕捉到的硬编码的用户名/密码。
如果您没有足够的时间在下class时间进行开发环境testing,除了内部开发/testing团队以外,所有用户都可以访问受影响的应用程序。


之后,您可以决定对应用程序的某些部分进行进一步的限制是有意义的(例如,只读帐户,只能INSERTUPDATE但不能DELETE帐户等)