客户的服务器只设置了一个用户,该用户具有执行所有操作的全局权限。我们希望将其更改为每个应用程序一个用户,并具有最低限度的必要权限。
为此,在不破坏任何东西的情况下,我们想分析查询日志,找出执行的查询类型。有这样的工具吗?
最好它会说只执行了SELECT、INSERT、UPDATE和DELETE,我们可以删除所有其他权限。
客户的服务器只设置了一个用户,该用户具有执行所有操作的全局权限。我们希望将其更改为每个应用程序一个用户,并具有最低限度的必要权限。
为此,在不破坏任何东西的情况下,我们想分析查询日志,找出执行的查询类型。有这样的工具吗?
最好它会说只执行了SELECT、INSERT、UPDATE和DELETE,我们可以删除所有其他权限。
没有工具可以分析查询日志并根据它告诉您现在和所有时间将运行什么,仅仅是因为无法知道查询日志是否是可能生成的所有查询的详尽列表通过软件。
您需要查看执行查询的实际代码才能做出此决定。
如果您无权访问实际代码,那么在您的情况下最好的办法是创建每个应用程序帐户,这些帐户只能访问特定应用程序所需的数据库,并且不能运行任何DDL语句 - - 这至少会消除Little Bobby Tables问题(坦率地说,代码运行 DDL 语句的任何系统都可能从根本上被破坏,需要仔细重新评估适当的权限防护)。
在您的开发环境中执行此操作(您确实有一个,对吗?)并进行测试以确保您的应用程序正常运行。要特别警惕您可能无法识别的硬编码用户名/密码。
如果您没有足够幸运在下班时间进行开发环境测试,除了您的内部开发/测试团队之外,所有用户都无法访问受影响的应用程序。
之后,您可以决定是否对应用程序的某些部分进行进一步限制(例如只读帐户、只能
INSERT
或UPDATE
不能的帐户DELETE
等)