2022年武汉理工大学数据库系统综合实验5.1,5.2安全性语言及多用户事务管理
实验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安全性语言及多用户事务管理相关推荐
- 【数据库系统综合实验】教学管理信息系统—学生选课及课程安排数据库综合实验
注:本文介绍 WHUT·计算机学院·数据库与系统综合实验 课程"教学管理信息系统" >>点击查看武汉理工大学计算机专业课程资料汇总 源码(VS项目+SQL数据库)下载地 ...
- 计费管理系统开发历程与源码分享(武汉理工大学程序设计综合实验课程设计)
那么,就让我们来谈一谈这个计费管理系统吧!一开始,我就充满了激情和热情,准备写出一份完美无缺的代码.不过,事情往往不是那么容易的,我很快就发现了一些困难. 首先,添加卡的功能是比较简单的,只需要在数据 ...
- 武汉理工大学数据结构综合实验——二叉树与赫夫曼图片压缩
文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 生成Huffman树的算法 生成Huffman编码的算法 压缩编码的算法 3.测试用例设计 ...
- 武汉理工大学数据结构综合实验——图与景区信息管理系统实践
文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 改进DFS算法 搜索最短路径 Prim算法(构建最小生成树) 3.测试用例设计 4.测试结果 ...
- 武汉理工大学数据结构综合实验——连连看游戏综合实践
文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计(非线性结构) 1.数据结构的设计 2.核心算法设计 一条直线消子 两条直线消子 三条直线消子 初始化游戏地图 搜寻路径 提示和重排 ...
- [数据库系统综合实验]电子图书资源服务系统
开源项目:book-house-swing 开发时间:2021.11 - 2021.12 文章目录 一.快速开始 二.背景调查 三.需求分析 四.功能描述 1.客户端功能 2.服务端功能 五.数据库概 ...
- ❤️汇总贴❤️本科课程汇总(武汉理工大学计算机科学与技术专业)
我的微信公众号:知行研究院,点击查看二维码,欢迎关注 我的其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 注:以下仅显示博 ...
- JavaWeb 图书管理系统(数据库综合实验)
<数据库系统综合实验>设计报告 分工我负责了图书管理系统中整个数据库的设计与实现,编写与整理了数据库相关方面的文档.梳理了概念设计,对于实体,实体对应的属性,各实体间的关联,E-R(实体联 ...
- 2022年北京理工大学计算机考研复试时间与安排
2022年北京理工大学计算机考研复试时间:2022年3月中下旬 2022年北京理工大学计算机考研复试安排查询入口:北京理工大学计算机学院 2022年北京理工大学计算机考研复试准备: 复试时间.地点.科 ...
最新文章
- 研究速递:预测学习——神经元高效运作的最佳策略
- 深入Java调试体系之JDWP协议及实现
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- include require区别
- Winform中使用FileStream读取文件后,继续操作提示:it is being used by anothor process
- 浅析SQL Server数据库中的伪列以及伪列的含义
- [python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像
- 3分钟搞懂LSI原理
- VUE搭建开发,以及打包。
- 计算机并行处理专业,分布式计算机并行处理技术(论文).doc
- 首个教育部印发的人工智能行动计划出炉:规划三步走,大学有三任务
- MySQL课堂练习 20162315
- MOSS 2007 / WSS 3.0 运行在Windows Server 2008上不能上传大于28M的文件【续】
- 设置桌面上计算机的图标更改,电脑如何修改桌面应用的图标
- 农历 阴历 转换阳历算法
- ES中的Multi_match深入解读:best_fields、most_fields、cross_fields用法一览
- RTX自动配置客户端服务器地址
- 加字邮票价格_SC2 “华东区生产图邮票”加字改值 价格收藏图片
- Kermit使用(提权限)
- Reading Notes:如何读史