鱼C论坛

 找回密码
 立即注册
查看: 1108|回复: 2

MySQL角色未生效??

[复制链接]
发表于 2023-5-19 17:18:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
步骤如下:
1.使用SQL语句,将teach角色分配给teacher用户:

GRANT 'teach'@'localhost' TO 'teacher'@'localhost';

2.使用SQL语句,激活teacher用户的teach角色:

SET DEFAULT ROLE 'teach'@'localhost' TO 'teacher'@'localhost';

3.使用SQL语句,查询teacher用户当前活跃的角色情况:

SELECT CURRENT_ROLE();

前两步运行成功无出错,
到第三步显示运行成功,但结果输出显示“当前活跃的角色情况CURRENT_ROLE”为:NONE
这个意思就是角色无生效,是不是角色授予不成功呢?得如何修改?
网上查阅说在“GRANT ROLE”的时候要授权:WITH ADMIN OPTION,我加进去后结果显示与前者一样是:NONE。
谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-19 17:19:26 | 显示全部楼层
可能是因为你的MySQL版本不支持“SET DEFAULT ROLE”语句。你可以尝试使用以下语句来激活角色:

SET ROLE 'teach'@'localhost' FOR 'teacher'@'localhost';

如果这个语句也不起作用,你可以尝试使用以下语句来查询角色:

SELECT * FROM INFORMATION_SCHEMA.APPLICABLE_ROLES WHERE USER='teacher' AND HOST='localhost';

这将返回一个包含所有适用于该用户的角色的列表。如果你看到了你想要的角色,请使用以下语句来激活它:

SET ROLE '角色名'@'localhost' FOR 'teacher'@'localhost';

如果你仍然无法解决问题,可能需要检查你的角色授权是否正确,或者尝试在MySQL 8.0或更高版本中运行你的代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-19 18:06:19 | 显示全部楼层
isdkz 发表于 2023-5-19 17:19
可能是因为你的MySQL版本不支持“SET DEFAULT ROLE”语句。你可以尝试使用以下语句来激活角色:

SET ROLE  ...

用“SELECT * FROM INFORMATION_SCHEMA.APPLICABLE_ROLES WHERE USER='teacher' AND HOST='localhost';”查询角色查不到我创建的角色teach,但前面显示我创建成功。真是奇怪。我的MySQL版本是8.0,而且我试了一下输入你第一句“SET ROLE 'teach'@'localhost' FOR 'teacher'@'localhost';”在FOR这里报错了噢。

以下是我创建角色teach的步骤:
CREATE ROLE 'teach'@'localhost';  //创建角色
GRANT SELECT,UPDATE(nor,tex)  
ON 实验二.学生成绩表
TO 'teach'@'localhost';   //为teach角色授予库“实验二”中“学生成绩表”的平时分数nor和考试成绩tex查询数据、修改数据的权限。
GRANT 'teach'@'localhost' TO 'teacher'@'localhost';  //将teach角色分配给teacher用户
SET DEFAULT ROLE 'teach'@'localhost' TO 'teacher'@'localhost';  //激活teacher用户的teach角色
SELECT CURRENT_ROLE();  //查询teacher用户当前活跃的角色情况,查不到。。。TnT

可以帮我看一下哪里出现错误吗?谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表