MySQL Error number: 3897; Symbol: ER_CANNOT_GRANT_SYSTEM_PRIV_TO_MANDATORY_ROLE; SQLSTATE: HY000 报错
文档解释
Error number: 3897; Symbol: ER_CANNOT_GRANT_SYSTEM_PRIV_TO_MANDATORY_ROLE; SQLSTATE: HY000
Message: AuthId `%s`@`%s` is set as mandatory_roles. Cannot grant the ‘%s’ privilege.
错误说明:
MySQL的ER_CANNOT_GRANT_SYSTEM_PRIV_TO_MANDATORY_ROLE错误表示,不能将系统特权授予交互角色(mandatory role)。该错误是由系统发出的,当MySQL试图为一个特定的角色授予的系统特权级别的权限时,会禁止此类操作。该错误由MySQL 5.7支持。
常见案例
ER_CANNOT_GRANT_SYSTEM_PRIV_TO_MANDATORY_ROLE错误通常会在MySQL中尝试将系统特权授予Insert_Test角色时发生。例如,MySQL试图在下面的语句中授予INSERT_TEST角色sys_priv:
GRANT SYS_PRIV ON *.* TO INSERT_TEST;
此外,此错误还可能发生在尝试授予某些系统特权时,诸如EXECUTE或ALTER。
解决办法:
首先,在尝试授予系统特权时,您应该确保用户是普通用户,而不是必须角色。如果您只是想要授予系统特权,只需将其分配给INSERT_TEST帐户而不是INSERT_TEST角色即可。
例如:
GRANT SYS_PRIV TO INSERT_TEST@hostname;
其次,您可以尝试删除INSERT_TEST“mandatory_role_statement”,当检测到未满足条件分配时,系统将执行此类操作。
关于MySQL的此错误的其他解决方法的更多问题,您可以查看MySQL 5.7文档中的ER_CANNOT_GRANT_SYSTEM_PRIV_TO_MANDATORY_ROLE部分,了解更多细节。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341