3
我想创建一个有权创建和删除其他用户的MySQL用户,但是会阻止我自己的(超级用户)帐户被删除或修改。如何保护MySQL用户不被删除和修改?
用户似乎需要CREATE USER
才能够管理用户,这似乎允许删除所有帐户。
目标是提供MySQL作为一种服务,可以做一些用户管理,同时保持管理用户不受用户的限制。
编辑:用户将使用CLI mysql客户端或第三方数据库工具直接连接到MySQL。当然这个问题可以通过为用户提供一个自定义系统来完成用户管理并在那里进行自定义访问控制来消除,但我更愿意直接访问数据库。
在你的场景中,MySQL是直接访问还是通过某种网站/ API访问? –
如果您在服务器和应用程序之间使用任何层(例如jdbc驱动程序),则可以截获查询并阻止任何删除用户的尝试。但是由于您允许用户通过mysql客户端连接,我认为您可以做的最好的做法是定期检查您的用户是否被删除并自动重新创建。但我仍然认为,如果向最终用户授予此权限是一个好主意(可能不是这样),您应该三思。 – Leo
@Leo:我不介意在每次需要时重新创建用户,如果这不意味着取消DB,并且每次使用--skip-grant-tables临时重新启动它。 – Maarten