数据库实验并发控制与数据库的安全性_第1页
数据库实验并发控制与数据库的安全性_第2页
数据库实验并发控制与数据库的安全性_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验10并发控制与数据库的安全性1试验学时〗2学时泪的要求〗学会创建事务。学会定义事务的隔离级别。了解事务模式及锁模式。掌握如何添加、删除和修改数据库用户。掌握如何添加、删除数据库角色以及如何为数据库角色添加和删除用户。掌握如何授予、拒绝和剥夺权限。了解如何管理应用程序角色。掌握通过视图保证数据的安全。1实验内容〗创建事务。执行以下语句,创建一个简单的事务。UJMEn-xdlHPCOJ^PUflwnflMyG-drhwqqemno中,fidid □ A oj £ ob 6 b m M设置一个存储点00ITIinnNsLoor「§0一wirr:q"£11心h>0nM>如果发生错误进行回滚时, 保证前面的插入行行为不丢失。□begintransactiontluseX3kcgo3insertinto学期成绩[学号,课程编号;Lvalues*1003*,・JO02‘)goEsavetransactiontl丰呻la"学期衣绩set咸绩NO-where学号1000'3if^Serror!-0rollbacktransactiontlelseLcoranittransftctiontlgoEselect"frQIQ学期成绩L讨hmre堂■&二・ID(J3・mndi異承呈编启二'J002「事务模式。(1)运行如下语句,查看结果。

usexskcgo3createtabledspl■dnochar2primarykey^dnan:evarcl]insert depl-values('01\1信息工程系\'Tceeasfl-)qinsertintodeplPvalues(r02\1电子商务系1f'76669991)qinsertintodepi-values{-03\-信息管理系•rju-76€6€66*) 八语注错误"goselect▼fromdeplgonr消息勺息丄叫级别15,状态S第7行「附近有语法错误。總20B,纟R别1E状态打第工行寸象名'血°无效°SQLServer回滚的是整可以看到,上例中结果显示为:所影响的行数为 0SQLServer回滚的是整提示:在自动提交事务模式下,当遇到的错误是编译错误时,个批处理,而不仅仅是一个SQL语句。运行如下语句,查看结果。usexskcgocreatetabledepl(dnochar2primarykey,dnair.evarchar20,telvarchar112iinsert^ntadeplJ信息工程系*7666338')insert二n匸odeplwill"""J由子商务系\*76€6999f>insert二n匸odeplwill"(S"「信息管理系-,*7666666-:"重复铠谐误咛goselectxfiomdeplgo结果面消息 •行受談和行受影响)息2^7f级别1巧状态1,第百行;反了PRIMARYKEY约束rPK_d«pL_DS7E0&SC2D27BS091*不能在对象・dbn*d・p:Lr中•重待进.i句己终止。 ——1行受談向)可以看到,上例中结果显示为:所影响的行数为 2行,说明前2条记录插入成功。

SQLServer回滚的仅仅提示:在自动提交事务模式下,当遇到的错误是运行错误时,是-一个SQLSQLServer回滚的仅仅使用显示事务在student_course数据库中添加选课信息,连续运行两次下面例子,并查看结果。第一次运行:■nnz-nnzJb=JZJ-J-DZdjz38■nnz-nnzJb=JZJ-J-DZdjz38883OOL30T5WLEOOf*SOOLNoor800LLoo「-SOOLrl・H即外UHUEH驼讪耀孫外匕口口时*auuHuosflHupTumloPC・一軍删呗夜塑堆•冬水,»MP口戸脍•pfldaLZBNUJfumcIHrlocHomOHnl迎邀MC■^ooh-■•©OOH■2--&-躱恶<1、即浒)鵬於跺孙DufUHUmuHMOdpUMnHyraHutit6Jou出mHMm口口口TArl口自口B °第二次运行:useX3kcgo[3begincransaccion^insertinto学期成绩(学号,课程编号)-values(^OOS*fhJG061)ElifS^error?=0F]beginrollbacktranprint,添加信息失败,请核对后童试!*return-亡:idLcoiLULittrangoselect▼ftoil学期成绩wliere学号=1iooago 附 3结果鬲消息消息切级别1羞反j廿二笑丫KEY约策不能在对象仙口一学期成绩+中插入重复键。语句已终止。潯加信息失败,请核对后重试!*5行受影响)⑷使用隐性事务在student_course数据库中添加选课信息,并查看事务数目信息。set;~in^liciL^ransactions~ongousexskcgo□丄intQ学期成绩i学号汽果程编号)kvaluesf1013・”「JDOm’}print,当前连接中的事务数目是;1-sti(rancount)committransaction-print,当前连接中的事务数目是:*-str(=trancoLmrigoh消息行受影响)当前连接中的事务数目是: II斗前i车榕中的事务埶曰是; ;提示:由于隐性事务会占用大量资源,一般情况下不建议使用。用户可以自定义事务隔离级别。下面定义一个事务的隔离级别为“可重复读”

seccransactianisolationlevelrepeatablereadgo□usexskzcbegintransactionselect=frciE学生where学号=,]008,SUM匸*from学期成绩coiErcittransac匸工口口—!结果J消息趕姓窑性别青业系别年级班别联系电话出生日期地区来11 ^1008]王啟玄NULLCSNULLNULLNULLNULLNULL学号课程漏号咸缰备注1\mIJD0189NULL21001JOT390NULL3伽J005B8NULL4tMIJW686NULL51002J00177NULL6T002J00292NULL71003J00186NULL8T003JOOS79NULL9T003JDOB65NULL10TOWJ00172NULL锁模式。在student_course数据库中,使用Holdlock对表student加共享锁。

提示:如果对锁使用不当,非常容易出现死锁。为了预防死锁的发生, 根据对数据加锁时的加锁策略,锁可分为乐观锁和悲观锁。提示:乐观锁假设没有发生可能造成死锁的冲突,然后读取数据,处理事务,执行更新,最后检查是否发生冲突。如果不存在冲突,事务就完成了;如果存在冲突,则重复事务直到没有冲突为止。采用悲观锁定时,它总是假设存在冲突,使用一个锁定,处理事务,然后解锁。提示:在 SQLServer中,对于Insert、Update和Delete数据修改语句使用排它锁。并发事务中,只有一个事务能够获得资源上的排它锁,其他事务不能在加了排它锁的资源上获得共享锁或排它锁。对表的排它锁,且在事务或语句结束前一直持有。00可以使用Xlock锁定提示,建立SC表。⑵在Select可以使用Xlock锁定提示,建立SC表。DeosMe旳卜woolmoorLOOT1-00「F2W--Jmoor数据库添加一个数据库用户。5.使用企业管理器为 ScourseIninmh出办白i-M旳寸inm3BQU⑴使用对象资源管理器,为 Student.■+i_j存储e口4.LJii_J刮Inm*lj辽+lj費E 49新建用户(N)…®&(O}方面(A)启动PowerShell[Hl(2)使用系统存储过程,为Student_course数据库添加一个数据库用户 (先建登录yy)。Jex&capaddloqin*yy1usexbIccI-execsp_grantdtoaccess1yy提示:一定要在需要添加用户的数据库中执行 sp_grantdbaccess,否则无效。6.使用对象资源管理器删除数据库用户 yy。a□ p斥曰口用户 「匚dbo秆建用户叫“扁写用户脚本为〔勻策SSQ)启动PowerShell(H)际P)m(Dm(D)冊 —此处发现删除不了。7.使用对象资源管理器为 SM数据库创建一个暂无成员的角色 specialman

al-I角 田al-I角 田口i+口应^扉_j消息新建数鉛库角色(N).,.启动PowershellCH)报執P〕£QLU帀・u刖avl.y-qdQ.juTnuu旳0mVlulkonhL»m-RMP>LJu_UIA^p-V」2皿pxluuplmp亡-Ep阳一Rp—丄pAA.M4阳PI丄PLu一pmu」PIJP-UQOCln^IJmJlJp■_Epp8•将数据库成员yy添加到specialman角色中。□[jsexskcI-execspaddlrcleirertbet1BpecLalmar.',・yy*Bl消息令已成功完成。9.删除角色specialman。□usexskc|Iexecspdroprole1specialman*j消息肖息1S144,级别衣耳态订第詡亥角色有多个成员◎角色必须为空后才能删除。删除成员后:

□usexskc1execspdroprole'specialmar:J消息命令已成珑麺色。提示:只能删除用户自定义角色, 系统的固定角色不能删除; 不能删除一个有成员的角色。10.在Student_course数据库中创建应用程序角色 gradeapp,口令为"password”。11•将表SC上的所有权限授给角色 gradeapp。曰口nu~3E3MCCarantallon学期成绩|匸口gradeapp3消息3消息权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对冥体定冥了皿权限。SqlServer2008的all权限定义不了。在所用的应用程序中激活角色 gradeapp。提示:应用程序一旦激活,只有当应用程序与SQLServer断开连接时才被停用。提示:应用程序一旦激活,只有当应用程序与SQLServer断开连接时才被停用。修改应用程序角色gradeapp的口令。删除应用程序角色。练习权限的授予。⑴把查询student表的权限授给用户 yy。□usexskcI-grantselecton学生to命令已成功完成。把表SC的全部权限授给用户yy。gpsexskc1-gran€^11priv丄】亡g亡son学期成纟责toyyl消息辽匸权限己不再推荐使用,并萌保留用于兼容怪目的:它并不表示对实体定义了A1L权限;把对表SC的查看权限授予所有用户。3usexskc1-grancselecton学期,成纟靑tapublicj消息站令已成功完成把对表SC的插入权限授予用户yy,并允许将此权限再授予其他用户。Qusexskzc1-grantinserton学貝冃成g责toyywithgrantoption⑸把查询表student和更新学号Sno的权限授给用户yy。□usexstc1-grant口口日玄匸亡(学号]”巳亡J.亡匚匸on学生toyyI :j消息命令已成珑議「练习权限的收回。(1)收回所有用户对表SC的查看权。0usexskcrevokeselecton学期成绐frompublicJ消息 命令已成功完成。⑵收回用户yy查询表student和更新学号Sno的权限。3usexskc1revok:eupdate学号rselecton罕牛fromyyj消息命令已成功議在表Student上创建一个简单的视图,对视图进行加密,并使用对象资源管理器来查看其属性。口3亡XS1CCgo3createviewviewlwithencryptionI-select*frorr.学生where性别『男,rri消息b令已成功完成。采用视图机制,使数据库用户 yy只能看到表Student中040003班的学生。USEX5XCgocreateviewview2asselect”from学生谕曲系别・8grantselectonviewstoyy消息令已成功完成。1问题解答〗1.怎样设置自动提交事务模式?自动提交事务是SQLServer的默认事务管理模式,只要自动提交事务模式没有被显式或隐性事务代替,则SQLServer连接时仍以该默认管理模式进行操作。2.SQLServer的权限分为几种?SQLServ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论