当前位置: 首页 > article >正文

头歌数据库课程实验(角色管理)

第1关:创建角色

任务描述
本关任务:创建角色 role1@localhost。

相关知识
为了完成本关任务,你需要掌握MySQL的角色管理。

角色信息存放在数据库 mysql 的 user 表中。
user 表中字段:

Host:可以登陆数据库的主机地址;
User:用户登陆名;
authentication_string :加过密的登陆密码;
_priv 结尾的字段:表明用户的权限。
增加角色
增加角色方式一语法:

create role 角色名@主机名 //角色名区分大小写,主机名连接来自的主机;
[ , 角色名@主机名[ ,... ] //可以同时创建多个数据库角色,中间用逗号分隔。 
 
增加角色示例:

使用 create role 语句增加一个角色R2,只允许在本地主机登陆。

create role R2@localhost;  
要求
根据提示,在右侧编辑器补充代码。创建角色role1,只允许在本地主机登录。

测试说明
开始你的任务吧,祝你成功!

  use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create role role1@localhost; /**********End**********/

第2关:给角色授权

任务描述
本关任务:系统用户 root 授权 role1@localhost 角色对teachingdb数据库中student表的select 权限。

相关知识
为了完成本关任务,你需要掌握 MySQL 的权限管理。使用grant语句为角色授权。

grant 语句的基本语法格式
grant 语句的基本语法格式:

 GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
 ON [object_type] priv_level
 TO user_or_role [, user_or_role] ...;
priv_type:权限类型;
column_list:字段列表;
object_type:目标对象类型,有三种:TABLE,FUNCTION,PROCEDURE;
privi_level:权限级别;
user_or_role:用户名或角色名。

示例:使用 grant 语句为角色role1授权,该角色对所有的数据有查询、插入的权限。

grant select,insert on *.* to role1@localhost; 
查看权限
语法:

show grants for  rolename@hostname 
例子: 查用角色 role1 的权限信息

 show grants for  role1@localhost;
要求
根据提示,在右侧编辑器补充代码,系统用户 root 授权 role1@localhost角色对teachingdb数据库中student表的select权限。

测试说明
编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

  use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/GRANT SELECT ON teachingdb.student TO 'role1'@'localhost';/**********End**********/

第3关:指定用户角色

任务描述
本关任务:系统用户root指定user1@localhost用户role1@localhost角色。

相关知识
为了完成本关任务,你需要掌握 MySQL 的角色管理。
将一个角色授予其他的角色或用户使用grant命令。

grant 语句的基本语法格式
grant 语句的基本语法格式:

 GRANT role [, role] ...
 TO user_or_role [, user_or_role] ...
 [WITH ADMIN OPTION];
示例:使用 grant 语句为用户U1指定角色role1。

grant role1@localhost  to U1@localhost; 
查看权限
语法:

show grants for  username@hostname 
例子: 查用用户U1的权限信息

 show grants for  U1@localhost;
要求
根据提示,在右侧编辑器补充代码,系统用户 root指定user1@localhost用户role1@localhost角色。

测试说明
编写代码后,点击测评即可。

开始你的任务吧,祝你成功!

   use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/GRANT 'role1'@'localhost' TO 'user1'@'localhost';/**********End**********/

第4关:回收用户角色

任务描述
本关任务:回收用户user1@localhost的role1@localhost角色。

相关知识
回收用户角色使用revoke语句。
REVOKE rolename FROM username;

要求
根据提示,在右侧编辑器补充代码,回收用户user1@localhost的role1@localhost角色。

开始你的任务吧,祝你成功!

 use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/REVOKE 'role1'@'localhost' FROM 'user1'@'localhost';/**********End**********/

第5关:删除角色

任务描述
本关任务:删除角色 role1@localhost。

相关知识
删除角色语法:

drop role 角色 [ , 角色] .... 
示例:使用 drop role 语句删除可以在任意主机上登陆的角色leader。

drop role 'leader'@'%'; 
要求
根据提示,在右侧编辑器补充代码。删除角色role1@localhost。

测试说明
开始你的任务吧,祝你成功!

use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/drop role 'role1'@localhost;/**********End**********/

http://www.lryc.cn/news/2396196.html

相关文章:

  • 【android bluetooth 协议分析 03】【蓝牙扫描详解 1】【扫描关键函数 btif_dm_search_devices_evt 分析】
  • SpringBoot使用ThreadLocal保存登录用户信息
  • 多模态大语言模型arxiv论文略读(102)
  • Ubuntu系统如何部署Crawlab爬虫管理平台(通过docker部署)
  • python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))
  • 高端装备制造企业如何选择适配的项目管理系统提升项目执行效率?附选型案例
  • 【Dv3Admin】工具权限配置文件解析
  • AI炼丹日志-22 - MCP 自动操作 Figma+Cursor 自动设计原型
  • Python爬虫:AutoScraper 库详细使用大全(一个智能、自动、轻量级的网络爬虫)
  • 2025.6.1总结
  • [嵌入式实验]实验四:串口打印电压及温度
  • LVS+Keepalived 高可用
  • Linux正则三剑客篇
  • HTML5 视频播放器:从基础到进阶的实现指南
  • 鸿蒙HarmonyOS (React Native)的实战教程
  • 函数栈帧深度解析:从寄存器操作看函数调用机制
  • 【计算机网络】第3章:传输层—可靠数据传输的原理
  • rv1126b sdk移植
  • 第6节 Node.js 回调函数
  • OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist
  • 构建系统maven
  • day13 leetcode-hot100-23(链表2)
  • Java面试八股(Java基础,Spring,SpringBoot篇)
  • Python编程基础(二)| 列表简介
  • 支持向量机(SVM):解锁数据分类与回归的强大工具
  • 代谢组数据分析(二十五):代谢组与蛋白质组数据分析的异同
  • 002 flutter基础 初始文件讲解(1)
  • AI 让无人机跟踪更精准——从视觉感知到智能预测
  • Launcher3体系化之路
  • 用wireshark抓了个TCP通讯的包