MariaDB 10.11.7中带GRANT OPTION的角色无法授予其他角色权限问题
问题原因与解决方案
核心原因
GRANT OPTION权限仅允许你将自身拥有的数据库级权限授予其他用户,但无法赋予你授予角色的权限。要授予某个角色给他人,你必须拥有该角色的ADMIN权限——也就是在获取该角色时附带WITH ADMIN OPTION选项。
你当前给admins角色设置的WITH GRANT OPTION是针对数据库权限的,和角色的管理权限完全无关,因此myuser无法授予default角色。
解决方案
你需要通过root用户给myuser或admins角色赋予default角色的ADMIN权限,二选一即可:
方案1:直接给myuser授予default角色的ADMIN权限
-- 以root身份执行 GRANT default TO myuser WITH ADMIN OPTION;
方案2:将default角色的ADMIN权限赋予admins角色
-- 以root身份执行 GRANT default TO admins WITH ADMIN OPTION;
这样myuser激活admins角色后,就自动拥有了授予default角色的权限。
关于ADMIN OPTION的说明
MariaDB 10.11.7完全支持WITH ADMIN OPTION,但注意它是角色授予专用选项,不能和GRANT ALL PRIVILEGES ON *.*一起使用——ALL PRIVILEGES仅包含数据库操作权限,不涵盖角色管理的ADMIN权限。
内容的提问来源于stack exchange,提问作者Emby
相关产品推荐
相关产品推荐

