这两个命令有什么区别?
GRANT ALL ON druid.* TO 'druid'@'localhost' IDENTIFIED BY 'diurd';
GRANT ALL PRIVILEGES ON *.* TO druid@'%' IDENTIFIED BY 'diurd';
答案 0 :(得分:6)
它们与特权语法相同; PRIVILEGES
是可选的。 Source
但是,这些权限的范围是不同的。一个命令为所有数据库(*.*
)提供权限,另一个命令仅在数据库druid
(druid.*
)中的表上提供权限。
此外,只允许来自localhost
的连接,但另一个允许来自任何地方的连接(%
)。
最后,druid@'%'
会出现语法错误;你需要druid
左右的引号。
作为最佳做法,请尽可能限制权限(仅限本地权限,权限尽可能少地在尽可能少的地方执行)。