ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:226.39KB ,
资源ID:23213835      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23213835.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验13事务并发控制与安全.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验13事务并发控制与安全.docx

1、实验13 事务并发控制与安全实验13 事务、并发控制与安全姓名:计算机科学与技术学号:专业:班级:同组人:无实验日期:【实验目的与要求】 提交事务、回滚事务 发出保存点 事务锁机制的理解【实验内容与步骤】13.1. 事务处理初步无论何时发出命令,都不会对数据库作直接更改。对于DML语句来讲必须明确地发出提交语句来保存更改;对于DDL,系统会自动提交。实验13-1:事务提交的实现。请按照下列给出的步骤完成实验,理解事务处理过程。(1) 打开一个以上的 SQL plus 的实例,即启动 SQL plus 多个会话,并连接到上次使用的相同用户模式(即以相同用户名和口令登录)。如:开启两个同时处于活动

2、状态的 SQL plus 会话,如图 13-1 所示。图 13-1开启多个会话(2) 如图 13-1 中所示,在“dept”表中插入一条新记录。图 13-2插入与查询数据(2) 在第一个会话窗口中发出一个选择语句,检验记录的插入。请给出查询结果:(4)另一个会话窗口对同一 dept 表发出同一查询语句。请给出查询结果:思考:比较两个查询语句运行结果,思考为什么会有这样的结果。(5)在第一个会话窗口提交修改。(6)完成提交后再在两个窗口各自对dept执行查询操作,比较查询结果,看是否相同?实验13-2:执行下面的步骤理解提交的概念。(1)单击第一个 SQL 实例,如图 所示,插入一项新记录。(2

3、)单击第二个会话,在此插入同一项记录。观察并比较运行结果,特别关注第二个会话的运行结果。(3)在第一个会话中提交数据(Commit),观察第二个会话中的反应状态。请给出运行结果:结论:由于记录是插入到第一个会话中的,又试图把相同的记录插入第二个会话中,并且由于 deptno 是主键,因此第二个会话不允许用户插入记录;而且在第一个会话发出提交语句或回滚语句(以后讨论)之前,挂起第二个会话。实验13-3:遵循下面给出的步骤,我们将理解如何保存记录整个过程背后的逻辑。(1)单击任务栏上 SQL 的第一个会话。将雇员的薪水更新为 Rs.4000。请给出运行结果:(2)单击任务栏上的第二个 SQL 会话

4、,试着更新相同记录的值。请给出运行结果:结论:第二个会话处于挂起状态,因为无论何时更新一个记录,在用户提交或回滚它之前,该记录是锁定的。因此,如果不发出提交或回滚语句,第二个会话一直是锁定的,直到解锁。注意:DDL 语句是自动提交的,所以没有必要使用任何提交语句来保存 DDL 语句所作的更改。13.2. 撤消更改我们已用提交语句保存更改,下面看看如何使用回滚语句来达到我们的目的。回滚语句用于撤消未提交的更改。实验13-4:执行下面给出的步骤,用回滚语句进行操作。(1)如图中所示,在“dept”表中插入一条新记录。(2)发出一个选择语句查看如图 4 中所示的新记录,可以看到新记录。(3)发出一个

5、如图 4 中所示的回滚语句。(4)给出一个选择语句查看记录。请给出运行结果:思考:比较两次查询语句执行的结果,理解回滚操作。注意:提交更改之后,就不能执行回滚语句。13.3. 插入保存点保存点只是在事务中插入的书签。这些书签用于标注事务,并配合回滚语句工作。由于回滚撤消整个任务,与保存点一起使用的回滚可用来撤消事务的某个部分。实验13-5:通过下面的操作步骤了解如何使用保存点:(1)删除 deptno 70 和 80 的记录,发出一个如图 5 中所示的保存点。(2)把 deptno为 40 的位置(Loc)更新为“SAN DIEGO”。(3)给出一个如下所示的命令来只撤消更新的记录。(4)查询

6、dept表中数据,给出查询结果,注意观查表中是否还有deptno=70 和 80的记得和deptno=40的记录是否被更新。请给出运行结果:13.4. 事务处理综合练习(1)实验准备:根据现有表emp生成测试用表(2)按下表所示步骤完成实验,根据运行结果完成表格最后一栏,理解事务处理。打开三个SQL Plus窗口完成实验要点:在第一个SQL Plus窗口中设置 SET TRANSACTION READ ONLY时间会话1会话2会话3给出各会话结果T1set transaction read only;T 2select count(*) from emp_t;select count(*) f

7、rom emp_t;会话1:会话2:T3delete from emp_t where rownum create table a 2 as 3 select 1 x from dual;表已创建。SQL create table b 2 as 3 select 1 x from dual;表已创建。SQL update a set x=x+1;已更新 1 行。(2)在会话2中,执行如下的操作:SQL update b set x=x+1;已更新 1 行。现在在会话2中执行语句:SQL update a set x=x+1;请给出执行结果:因为第一个会话已经将这个行锁定,所以将会立即阻塞(SQ

8、L提示符不能返回)。然而,这并不是死锁,这只是阻塞。现在还没有死锁,因为第一个会话还有机会进行提交或者回滚,这是第二个会话将继续执行。只是处于等待状态。(3)在会话1中,更新B表,这将导致死锁。SQL update b set x=x+1;会话1处于执行状态,但是没有SQL提示符的返回,也没有处理结果(4)在会话2中,可以看到Oracle检测到了死锁。SQL update a set x=x+1;请给出执行结果:(5)查找Oracle的追踪文件:c:oracleproduct10.1.0admintestdbudumptestdb_ora_XXXX.trc,其中XXXX为一编号,实验时请根据文

9、件创建和修改时间选择最新的。会发现类似如下记录信息:该文件中记录了发生死锁的系统的一系列的信息。13.7 创建用户创建用户就是在数据库中增加一个用户帐户,用户可以使用该帐户访问数据库。可以使用 create user 创建账户,语法形式如下:create user user_nameidentified by password其中:user_name指定将要创建的数据库用户的名称password指定该数据库用户的口令。在创建用户时,创建者应该具有create user系统权限。实验13-9:创建用户以scott/tiger身份创建一个用户Hillary,其口令是window.请给出执行结果截图

10、: 实验练习:创建用户以scott/tiger身份创建一个用户DEMO,其口令是DEMO.请给出执行结果截图:创建用户之后,如果没有为该用户授予相应的连接数据库的权限,该用户依然不能连接到数据库中。需要为用户授予create session的权限。语法如下:grant create session to user_name为了保护数据库的安全,用户口令应该经常修改。可以使用两种方式修改用户口令。第一种方式是使用alter user语句修改用户的口令.语法形式如下:alter user user_namidentified by new_password第二种方式是使用password命令。 前

11、一种既可以修改当前用户的口令,也可以修改其他用户的口令;后一种只能用来修改当前用户的口令。 13.8 授予权限注意:SCOTT 登录的密码是 TIGER,而 DEMO 登录的密码为前面创建用户之密码。13.8.1 授予特定的权限实验13-10:授予特定用户特定的权限要将emp 表上的SELECT 权限授予DEMO,请给出如图所示的命令。请给出执行结果截图:实验13-11:授予特定用户特定的权限(1)连接与查询:请执行如下图中所示的步骤在下面的命令中,首先连接到 DEMO 登录,然后发出查询语句,在那里,在指定表名称时需把模式名放在了表名称的前面。请给出执行结果截图:(2)试图对表执行如图下图中

12、所示的操作,理解权限管理。请给出执行结果截图:思考:为什么第(2)中的语句没能执行成功?13.8.2 授予所有权限在上面的实验中,已经了解如何授予特定权限。实验13-12:向其他用户授予所有权限下面是一个可以向其他用户授予所有权限的实验,执行如图中所示的步骤,向其他用户授予所有权限。实验中,首先连接到 SCOTT,然后,我们向 DEMO 授予了所有权限。授予权限后,连接到 DEMO 登录。首先发出从授予表中查看所有记录的选择语句。(1)连接与查询请给出执行结果截图:(2)修改表中数据完成查询后,更新记录以更改表中的值,如下图:请给出执行结果截图:(2)删除表 在sql plus中执行如下命令:

13、drop table scott.dept请给出执行结果截图:小结:授予所有权限后,被授权人就可执行所有 DML 任务;被授权人不能删除表,即使授权人给予其 ALL 权限。13.8.3 理解 WITH GRANT OPTION到现在为止,明白了对象的所有者(授权人)向另一个用户(被授权人)授予权限。而且,被授权人根据其所拥有的权限利用对象。但是,有时被授权人本身想向第三个用户授予授权人表。假如主授权人利用 WITH GRANT OPTION 授予了该表,正常情况下,被授权人无法这样做。实验13-13:下面看看一个使用 WITH GRANT OPTION 的示例。(1) 准备工作a. 使用cre

14、ate as命令创建表ret_emp;b. 创建用户ani,口令为ani,并授予连接权限;请给出执行结果截图:(2)执行如图中所示的步骤DEMO 将 Scott 的表授予用户 ANI 之后,ANI 访问该表的方式显示在下图之中。执行如下步骤,了解整个情况。现在,由于 SCOTT 已授予 DEMO 所有权限。DENO 在向 ANI 授予表时可授予任何权限。但是,假定 SCOTT 只授予对表的选择权限,则 DEMO 就只能向 ANI 授予选择权限。接下来的步骤是,DEMO 向 ANI 授予权限,DEMO 只授予对表的插入权限。因此,当 ANI 试图使用选择语句时,他就会收到出错信息。但是,他可以正常插入值。13.9 撤消权限我们使用 GRANT 命令向用户授予权限。而 REVOKE 用来从用户那里撤消权限。实验13-14:执行如下图中所示的步骤,撤消 DEMO 对 ret_emp 表的权限。注意:当 SCOTT 撤回 DEMO 的权限后,DEMO 授予 ANI 的权限也自动撤消。您也可以一次只从被授权人撤回某项特定权限。实验练习:以DEMO用户连接数据库,试着对表 ret_emp进行查询、更新和删除操作,给出实验结果。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1