我创建了一个用户并授予了"CREATE USER“权限。我发现用户可以删除任何其他用户,包括root。我怎样才能防止这种情况发生呢?
实际上,我们将Mysql作为服务来实现,就像AWS的RDS一样。我们将创建一个超级用户,供系统管理使用。我们的客户将有另一个用户,其中包括“创建用户”的大部分特权,以便他们可以管理自己的帐户。我想找出一种不同于Mysql普通权限的方法来实现这一点
如果您有AWS RDS,您会发现RDS有一个'rdsadmin‘用户帐户。如果对'rdsadmin'@'localhost‘运行DROP USER 'rdsadmin'@'localhost’,则会收到错误: ERROR 1396 (HY000):Operation DROP USER failed for‘rdsadmin’@‘localhost’。我很好奇如何实现这一点。
我尝试在mysq.user表上添加触发器,以便在用户从表中删除'rdsadmin‘时抛出错误。但是触发器只适用于DELETE FROM USER ...
sql,而不适用于DROP USER
。你知道原因吗,或者有什么方法可以解决它?
发布于 2015-08-21 19:20:24
无法向指定用户授予权限,CREATE USER是全局权限。
例如,我建议您将MySQL用户分开--其中可能有一些:用于管理(具有根权限)、用于开发人员(用于访问和更改数据库对象和表数据)等等……
发布于 2015-08-21 22:09:09
正如Devart所说,您不能更改CREATE USER的权限。
但是,看起来您正在做的就是将mysql实例提供给用户,让他们自己控制。为此,我们来看看服务器管理工具。有很多,包括froxlor服务器管理工作室(免费和开源):https://www.froxlor.org/
这只是一个想法。
https://stackoverflow.com/questions/32137462
复制相似问题