mysql“grant all”vs“grant all privileges”

时间:2015-10-03 10:36:28

标签: mysql

这两个命令有什么区别?

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

1 个答案:

答案 0 :(得分:6)

它们与特权语法相同; PRIVILEGES是可选的。 Source

但是,这些权限的范围是不同的。一个命令为所有数据库(*.*)提供权限,另一个命令仅在数据库druiddruid.*)中的表上提供权限。

此外,只允许来自localhost的连接,但另一个允许来自任何地方的连接(%)。

最后,druid@'%'会出现语法错误;你需要druid左右的引号。

作为最佳做法,请尽可能限制权限(仅限本地权限,权限尽可能少地在尽可能少的地方执行)。