如何保护MySQL用户不被删除和修改?

3
我想创建一个MySQL用户,该用户具有创建和删除其他用户的权限,但防止我的超级用户帐户被删除或修改。
该用户似乎需要“CREATE USER”才能管理用户,并且这似乎允许删除所有帐户。
目标是提供MySQL作为服务,并具有进行一些用户管理的可能性,同时保护数据库上的管理用户免受用户的侵害。
编辑:用户将直接使用CLI mysql客户端或第三方数据库工具连接到MySQL。当然,通过提供用户自定义系统来进行用户管理并在其中进行自定义访问控制可以消除此问题,但我更喜欢直接访问数据库。

在您的情况下,MySQL 是直接访问还是通过某种网站/API 访问的? - Kuba Wyrostek
如果您在服务器和应用程序之间使用了任何层,例如JDBC驱动程序,您可以拦截查询并阻止任何尝试删除您的用户。但是,由于您允许用户通过MySQL客户端连接,因此我认为您最好定期检查您的用户是否已被删除,并自动重新创建它。但我仍然认为,如果向最终用户授予此权限是否是一个好主意(也许不是),您应该三思而后行。 - Leo
@Leo:如果不需要关闭数据库并使用--skip-grant-tables进行临时重启,我每次需要时都可以重新创建用户。 - Maarten
我同意这可能会很痛苦。 - Leo
1个回答

0

MySQL无法提供这种级别的用户管理控制。但我可以想象一个小应用程序,让您授权的用户仅管理您允许的用户。

只有应用程序会以特权用户身份连接到数据库。 只有应用程序会发出实际的CREATE USERDROP USER语句,并且仅限于您允许的帐户。

通过此应用程序操作这些实际的MySQL系统用户后,这些帐户将变为可供直接连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接