MySQL "grant all"与"grant all privileges"的区别

11

这两个命令有什么区别?

GRANT ALL ON druid.* TO 'druid'@'localhost' IDENTIFIED BY 'diurd';
GRANT ALL PRIVILEGES ON *.* TO druid@'%' IDENTIFIED BY 'diurd';
1个回答

17

它们在特权语法方面是等效的;PRIVILEGES是可选的。来源

然而,这些权限的范围是不同的。其中一个命令赋予所有数据库(*.*)的权限,另一个仅赋予数据库druid中的表(druid.*)的权限。

此外,其中一个仅允许来自localhost的连接,而另一个则允许来自任何地方的连接(%)。

最后,druid@'%'会产生语法错误;你需要在druid周围加上引号。

作为最佳实践,尽可能限制权限(仅本地,尽可能少的地方做尽可能少的事情)。


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