MySQL授权权限限制问题:给Admin配置仅能授权Manager/Student时SQL报错
问题解决:MySQL带限制的GRANT OPTION授权错误
你的SQL语法不符合MySQL规范,WITH GRANT OPTION后不能直接用FOR指定可授予的目标用户,这是触发语法错误的核心原因。
正确操作步骤
- 先为
Admin@localhost授予schedule数据库的所有权限,并开启其授予权限的能力:
GRANT ALL PRIVILEGES ON schedule.* TO 'Admin'@'localhost' WITH GRANT OPTION;
- 要限制
Admin仅能将权限授予Manager@localhost和Student@localhost,需确保Admin没有全局权限(比如CREATE USER),这样他无法创建新用户或给未指定的其他用户授权。当Admin需要给这两个用户授权时,可执行类似如下语句(此操作由Admin自行完成,无需提前配置):
-- 给Manager授予权限(Admin执行) GRANT ALL PRIVILEGES ON schedule.* TO 'Manager'@'localhost' WITH GRANT OPTION; -- 给Student授予权限(Admin执行) GRANT ALL PRIVILEGES ON schedule.* TO 'Student'@'localhost';
如果需要更严格的限制,确保Admin完全无法给其他用户授权,可先撤销其全局权限(若之前误授予),再重新授予精准权限:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'Admin'@'localhost'; GRANT ALL PRIVILEGES ON schedule.* TO 'Admin'@'localhost' WITH GRANT OPTION;
内容的提问来源于stack exchange,提问作者Mohamed Sulaimaan
相关产品推荐
相关产品推荐

