命令执行后
GRANT ALL PRIVILEGES ON `dbname`.* TO 'userA'@'localhost' IDENTIFIED BY 'password';
MySql 说没问题。然后我登录用户 A,但当我尝试向用户 B 授予某些权限时,它给出错误 #1044,说用户 A 无权执行此操作。MySql 向用户 A 授予所有权限,同时不允许他执行任何操作。我不知道如何解决这个问题。
答案1
all
不包括grant
特权。
引用来自文档:
可选的 WITH 子句用于使用户能够向其他用户授予权限。WITH GRANT OPTION 子句使用户能够将其在指定权限级别上拥有的任何权限授予其他用户。
要向帐户授予 GRANT OPTION 权限而不更改其权限,请执行以下操作:
GRANT USAGE ON *.* TO 'someuser'@'somehost' WITH GRANT OPTION;
因此,就你的情况而言:
GRANT ALL PRIVILEGES ON `dbname`.* TO 'userA'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;