实验5.1 自主存取控制实验

实验任务

一,数据库用户任务

1.创建用户user_1和user_2,密码都为1234
create user 'user_1'@'localhost' identified by '1234';
create user 'user_2'@'localhost' identified by '1234';

2.将用户user_2的名称修改为user_3,并将其密码修改为123456
rename user 'user_2'@'localhost' to 'user_3'@'localhost';
set password for 'user_3'@'localhost'='123456';

3.以user_1身份登陆数据库
先退出当前管理用户,再登录user_1(可以开多窗口分别使用不同的用户,避免一直切换用户登录)

二,数据库权限任务

1.授予用户user_1对DBEM数据库中employee表的查询、插入、修改、删除等权限
先退出user_1用户,登录管理员用户,再对user_1授权
grant select, insert, update, delete on dbem.employee to 'user_1'@'localhost';

2.授予用户user_1对salary表的查询权限,并允许其将权限授予其他用
户,然后用user_1登陆数据库并将salary表的查询权限授予user_3
grant select  on dbem.employee to 'user_1'@'localhost' WITH grant option;
exit;
mysql -u user_1 -p1234
grant select  on dbem.employee to 'user_3'@'localhost';

3.回收user_1的employee表上的select权限
先退出user_1用户,进入管理员用户
revoke select on dbem.employee from 'user_1'@'localhost';

实验5.2 并发控制实验

实验准备

给salary表增加一条记录
insert into salary(employeeID,income,outcome)
values(1,1000,0);

创建两个超级用户clientA和clientB,分别以clientA和clientB登录,
将隔离级别改为“读已提交”,取消自动提交事务的功能,改为显示
事务提交,即需要执行commit命令提交事务
在管理员用户下创建并授权
create user 'clientA'@'localhost' identified by '123456';
grant all on DBEM.* to clientA@localhost;
create user 'clientB'@'localhost' identified by '123456';
grant all on DBEM.* to clientB@localhost;

分别登录clientA,clientB用户后设置
set session transaction isolation level read committed;
set @@autocommit=0; 
select @@transaction_isolation;

(此时使用了多窗口)

一,在“读已提交”隔离级别下,验证避免丢失修改的情况
① 修改该记录的income值为1200
在管理员用户中执行
update salary set income=1200 where employeeID='1';

② 分别在客户端A和客户端B执行SQL语句查询该员工的income值
A,B中分别运行
select income from salary where employeeID='1';

③ 在客户端A执行命令修改salary中记录的income值减少500,然后查
看修改后的值
update salary set income=income-500 where employeeID='1';

select income from salary where employeeID='1';

④ 在客户端B执行命令修改salary中记录的income值减少500,然后查
看修改后的值
update salary set income=income-500 where employeeID='1';

select income from salary where employeeID='1';

⑤ 在客户端A提交事务
⑥ 在客户端B提交事务
commit;

⑦ 在客户端A和B分别执行查看命令,检查income的值
select income from salary where employeeID='1';

二, 在“读已提交”隔离级别下,验证避免脏读的情况
① 修改该记录的income值为0
update salary set income=0 where employeeID='1';

② 分别在客户端A和客户端B执行SQL语句查询员工的income值
select income from salary where employeeID='1';

③ 在客户端A执行命令修改salary中记录的income值为1200,然后查
看修改后的值
update salary set income=1200 where employeeID='1';
select income from salary where employeeID='1';

④ 在客户端B执行命令查看income的值
select income from salary where employeeID='1';

⑤ 在客户端A提交事务
commit;

⑥ 在客户端B执行查看命令,检查income的值
select income from salary where employeeID='1';

三, 在“读已提交”隔离级别下,验证不可重复读的情况
① 修改该记录的income值为1200
select income from salary where employeeID='1';

② 在客户端A执行命令查看salary中记录的income值
select income from salary where employeeID='1';

③ 在客户端B执行命令修改income的值为1300
update salary set income=1300 where employeeID='1';

④ 在客户端A再次读取指定员工的income值
select income from salary where employeeID='1';

⑤ 客户端B提交事务
commit;

⑥ 在客户端A再次执行查看命令,检查income的值
select income from salary where employeeID='1';

⑦ 客户端A提交事务
commit;

四,在“读已提交”隔离级别下,验证出现“幻读”的情况
① 在客户端A执行命令查看所有员工的收入记录
select income from salary;

② 在客户端B执行命令插入一个新员工的收入记录
insert into salary set employeeID=888888, income=100000000, outcome=1000000;

③ 在客户端A再次读取所有员工的收入记录
select income from salary;

④ 客户端B提交事务
commit;

⑤ 在客户端A再次执行查看命令,读取所有员工的收入记录
select income from salary;

⑥ 客户端A提交事
commit;

2022年武汉理工大学数据库系统综合实验5.1,5.2安全性语言及多用户事务管理相关推荐

  1. 【数据库系统综合实验】教学管理信息系统—学生选课及课程安排数据库综合实验

    注:本文介绍 WHUT·计算机学院·数据库与系统综合实验 课程"教学管理信息系统" >>点击查看武汉理工大学计算机专业课程资料汇总 源码(VS项目+SQL数据库)下载地 ...

  2. 计费管理系统开发历程与源码分享(武汉理工大学程序设计综合实验课程设计)

    那么,就让我们来谈一谈这个计费管理系统吧!一开始,我就充满了激情和热情,准备写出一份完美无缺的代码.不过,事情往往不是那么容易的,我很快就发现了一些困难. 首先,添加卡的功能是比较简单的,只需要在数据 ...

  3. 武汉理工大学数据结构综合实验——二叉树与赫夫曼图片压缩

    文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 生成Huffman树的算法 生成Huffman编码的算法 压缩编码的算法 3.测试用例设计 ...

  4. 武汉理工大学数据结构综合实验——图与景区信息管理系统实践

    文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 改进DFS算法 搜索最短路径 Prim算法(构建最小生成树) 3.测试用例设计 4.测试结果 ...

  5. 武汉理工大学数据结构综合实验——连连看游戏综合实践

    文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计(非线性结构) 1.数据结构的设计 2.核心算法设计 一条直线消子 两条直线消子 三条直线消子 初始化游戏地图 搜寻路径 提示和重排 ...

  6. [数据库系统综合实验]电子图书资源服务系统

    开源项目:book-house-swing 开发时间:2021.11 - 2021.12 文章目录 一.快速开始 二.背景调查 三.需求分析 四.功能描述 1.客户端功能 2.服务端功能 五.数据库概 ...

  7. ❤️汇总贴❤️本科课程汇总(武汉理工大学计算机科学与技术专业)

    我的微信公众号:知行研究院,点击查看二维码,欢迎关注 我的其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 注:以下仅显示博 ...

  8. JavaWeb 图书管理系统(数据库综合实验)

    <数据库系统综合实验>设计报告 分工我负责了图书管理系统中整个数据库的设计与实现,编写与整理了数据库相关方面的文档.梳理了概念设计,对于实体,实体对应的属性,各实体间的关联,E-R(实体联 ...

  9. 2022年北京理工大学计算机考研复试时间与安排

    2022年北京理工大学计算机考研复试时间:2022年3月中下旬 2022年北京理工大学计算机考研复试安排查询入口:北京理工大学计算机学院 2022年北京理工大学计算机考研复试准备: 复试时间.地点.科 ...

最新文章

  1. 研究速递:预测学习——神经元高效运作的最佳策略
  2. 深入Java调试体系之JDWP协议及实现
  3. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
  4. include require区别
  5. Winform中使用FileStream读取文件后,继续操作提示:it is being used by anothor process
  6. 浅析SQL Server数据库中的伪列以及伪列的含义
  7. [python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像
  8. 3分钟搞懂LSI原理
  9. VUE搭建开发,以及打包。
  10. 计算机并行处理专业,分布式计算机并行处理技术(论文).doc
  11. 首个教育部印发的人工智能行动计划出炉:规划三步走,大学有三任务
  12. MySQL课堂练习 20162315
  13. MOSS 2007 / WSS 3.0 运行在Windows Server 2008上不能上传大于28M的文件【续】
  14. 设置桌面上计算机的图标更改,电脑如何修改桌面应用的图标
  15. 农历 阴历 转换阳历算法
  16. ES中的Multi_match深入解读:best_fields、most_fields、cross_fields用法一览
  17. RTX自动配置客户端服务器地址
  18. 加字邮票价格_SC2 “华东区生产图邮票”加字改值 价格收藏图片
  19. Kermit使用(提权限)
  20. Reading Notes:如何读史

热门文章

  1. 本来有关技术之外的话题不属于这个板块讨论的范畴,既然说到其它方面,说说也未尝不可。
  2. Zookeeper实战-分布式锁的现实
  3. linux服务器网络编程之线程模型
  4. java ssj_SSJ中相关配置文件的写法DEMO
  5. 公平锁非公平锁的实际使用_java 线程公平锁与非公平锁详解及实例代码
  6. mysql凡人入门_SQL入门学习
  7. 剑指offer笔记(七)从尾到头打印链表
  8. 泰勒级数与麦克劳伦级数
  9. 成长经历html代码,个人成长经历范文
  10. E题:变流器负载试验中的能量回馈装置(本科)--2018年TI杯大学生电子设计竞赛