數(shù)據(jù)庫實驗并發(fā)控制與數(shù)據(jù)庫的安全性_第1頁
數(shù)據(jù)庫實驗并發(fā)控制與數(shù)據(jù)庫的安全性_第2頁
數(shù)據(jù)庫實驗并發(fā)控制與數(shù)據(jù)庫的安全性_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗10并發(fā)控制與數(shù)據(jù)庫的安全性1試驗學時〗2學時淚的要求〗學會創(chuàng)建事務(wù)。學會定義事務(wù)的隔離級別。了解事務(wù)模式及鎖模式。掌握如何添加、刪除和修改數(shù)據(jù)庫用戶。掌握如何添加、刪除數(shù)據(jù)庫角色以及如何為數(shù)據(jù)庫角色添加和刪除用戶。掌握如何授予、拒絕和剝奪權(quán)限。了解如何管理應(yīng)用程序角色。掌握通過視圖保證數(shù)據(jù)的安全。1實驗內(nèi)容〗創(chuàng)建事務(wù)。執(zhí)行以下語句,創(chuàng)建一個簡單的事務(wù)。UJMEn-xdlHPCOJ^PUflwnflMyG-drhwqqemno中,fidid □ A oj £ ob 6 b m M設(shè)置一個存儲點00ITIinnNsLoor「§0一wirr:q"£11心h>0nM>如果發(fā)生錯誤進行回滾時, 保證前面的插入行行為不丟失?!鮞egintransactiontluseX3kcgo3insertinto學期成績[學號,課程編號;Lvalues*1003*,?JO02‘)goEsavetransactiontl豐呻la"學期衣績set咸績NO-where學號1000'3if^Serror!-0rollbacktransactiontlelseLcoranittransftctiontlgoEselect"frQIQ學期成績L討hmre堂■&二?ID(J3?mndi異承呈編啟二'J002「事務(wù)模式。(1)運行如下語句,查看結(jié)果。

usexskcgo3createtabledspl■dnochar2primarykey^dnan:evarcl]insert depl-values('01\1信息工程系\'Tceeasfl-)qinsertintodeplPvalues(r02\1電子商務(wù)系1f'76669991)qinsertintodepi-values{-03\-信息管理系?rju-76€6€66*) 八語注錯誤"goselect▼fromdeplgonr消息勺息丄叫級別15,狀態(tài)S第7行「附近有語法錯誤???0B,纟R別1E狀態(tài)打第工行寸象名'血°無效°SQLServer回滾的是整可以看到,上例中結(jié)果顯示為:所影響的行數(shù)為 0SQLServer回滾的是整提示:在自動提交事務(wù)模式下,當遇到的錯誤是編譯錯誤時,個批處理,而不僅僅是一個SQL語句。運行如下語句,查看結(jié)果。usexskcgocreatetabledepl(dnochar2primarykey,dnair.evarchar20,telvarchar112iinsert^ntadeplJ信息工程系*7666338')insert二n匸odeplwill"""J由子商務(wù)系\*76€6999f>insert二n匸odeplwill"(S"「信息管理系-,*7666666-:"重復(fù)鎧諧誤嚀goselectxfiomdeplgo結(jié)果面消息 ?行受談和行受影響)息2^7f級別1巧狀態(tài)1,第百行;反了PRIMARYKEY約束rPK_d?pL_DS7E0&SC2D27BS091*不能在對象?dbn*d?p:Lr中?重待進.i句己終止。 ——1行受談向)可以看到,上例中結(jié)果顯示為:所影響的行數(shù)為 2行,說明前2條記錄插入成功。

SQLServer回滾的僅僅提示:在自動提交事務(wù)模式下,當遇到的錯誤是運行錯誤時,是-一個SQLSQLServer回滾的僅僅使用顯示事務(wù)在student_course數(shù)據(jù)庫中添加選課信息,連續(xù)運行兩次下面例子,并查看結(jié)果。第一次運行:■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結(jié)果鬲消息消息切級別1羞反j廿二笑丫KEY約策不能在對象仙口一學期成績+中插入重復(fù)鍵。語句已終止。潯加信息失敗,請核對后重試!*5行受影響)⑷使用隱性事務(wù)在student_course數(shù)據(jù)庫中添加選課信息,并查看事務(wù)數(shù)目信息。set;~in^liciL^ransactions~ongousexskcgo□丄intQ學期成績i學號汽果程編號)kvaluesf1013?”「JDOm’}print,當前連接中的事務(wù)數(shù)目是;1-sti(rancount)committransaction-print,當前連接中的事務(wù)數(shù)目是:*-str(=trancoLmrigoh消息行受影響)當前連接中的事務(wù)數(shù)目是: II斗前i車榕中的事務(wù)埶曰是; ;提示:由于隱性事務(wù)會占用大量資源,一般情況下不建議使用。用戶可以自定義事務(wù)隔離級別。下面定義一個事務(wù)的隔離級別為“可重復(fù)讀”

seccransactianisolationlevelrepeatablereadgo□usexskzcbegintransactionselect=frciE學生where學號=,]008,SUM匸*from學期成績coiErcittransac匸工口口—!結(jié)果J消息趕姓窯性別青業(yè)系別年級班別聯(lián)系電話出生日期地區(qū)來11 ^1008]王啟玄NULLCSNULLNULLNULLNULLNULL學號課程漏號咸韁備注1\mIJD0189NULL21001JOT390NULL3伽J005B8NULL4tMIJW686NULL51002J00177NULL6T002J00292NULL71003J00186NULL8T003JOOS79NULL9T003JDOB65NULL10TOWJ00172NULL鎖模式。在student_course數(shù)據(jù)庫中,使用Holdlock對表student加共享鎖。

提示:如果對鎖使用不當,非常容易出現(xiàn)死鎖。為了預(yù)防死鎖的發(fā)生, 根據(jù)對數(shù)據(jù)加鎖時的加鎖策略,鎖可分為樂觀鎖和悲觀鎖。提示:樂觀鎖假設(shè)沒有發(fā)生可能造成死鎖的沖突,然后讀取數(shù)據(jù),處理事務(wù),執(zhí)行更新,最后檢查是否發(fā)生沖突。如果不存在沖突,事務(wù)就完成了;如果存在沖突,則重復(fù)事務(wù)直到?jīng)]有沖突為止。采用悲觀鎖定時,它總是假設(shè)存在沖突,使用一個鎖定,處理事務(wù),然后解鎖。提示:在 SQLServer中,對于Insert、Update和Delete數(shù)據(jù)修改語句使用排它鎖。并發(fā)事務(wù)中,只有一個事務(wù)能夠獲得資源上的排它鎖,其他事務(wù)不能在加了排它鎖的資源上獲得共享鎖或排它鎖。對表的排它鎖,且在事務(wù)或語句結(jié)束前一直持有。00可以使用Xlock鎖定提示,建立SC表。⑵在Select可以使用Xlock鎖定提示,建立SC表。DeosMe旳卜woolmoorLOOT1-00「F2W--Jmoor數(shù)據(jù)庫添加一個數(shù)據(jù)庫用戶。5.使用企業(yè)管理器為 ScourseIninmh出辦白i-M旳寸inm3BQU⑴使用對象資源管理器,為 Student.■+i_j存儲e口4.LJii_J刮Inm*lj遼+lj費E 49新建用戶(N)…?&(O}方面(A)啟動PowerShell[Hl(2)使用系統(tǒng)存儲過程,為Student_course數(shù)據(jù)庫添加一個數(shù)據(jù)庫用戶 (先建登錄yy)。Jex&capaddloqin*yy1usexbIccI-execsp_grantdtoaccess1yy提示:一定要在需要添加用戶的數(shù)據(jù)庫中執(zhí)行 sp_grantdbaccess,否則無效。6.使用對象資源管理器刪除數(shù)據(jù)庫用戶 yy。a□ p斥曰口用戶 「匚dbo稈建用戶叫“扁寫用戶腳本為〔勻策SSQ)啟動PowerShell(H)際P)m(Dm(D)冊 —此處發(fā)現(xiàn)刪除不了。7.使用對象資源管理器為 SM數(shù)據(jù)庫創(chuàng)建一個暫無成員的角色 specialman

al-I角 田al-I角 田口i+口應(yīng)^扉_j消息新建數(shù)鉛庫角色(N).,.啟動PowershellCH)報執(zhí)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?將數(shù)據(jù)庫成員yy添加到specialman角色中?!鮗jsexskcI-execspaddlrcleirertbet1BpecLalmar.',?yy*Bl消息令已成功完成。9.刪除角色specialman?!鮱sexskc|Iexecspdroprole1specialman*j消息肖息1S144,級別衣耳態(tài)訂第詡亥角色有多個成員◎角色必須為空后才能刪除。刪除成員后:

□usexskc1execspdroprole'specialmar:J消息命令已成瓏麺色。提示:只能刪除用戶自定義角色, 系統(tǒng)的固定角色不能刪除; 不能刪除一個有成員的角色。10.在Student_course數(shù)據(jù)庫中創(chuàng)建應(yīng)用程序角色 gradeapp,口令為"password”。11?將表SC上的所有權(quán)限授給角色 gradeapp。曰口nu~3E3MCCarantallon學期成績|匸口gradeapp3消息3消息權(quán)限已不再推薦使用,并且只保留用于兼容性目的。它并不表示對冥體定冥了皿權(quán)限。SqlServer2008的all權(quán)限定義不了。在所用的應(yīng)用程序中激活角色 gradeapp。提示:應(yīng)用程序一旦激活,只有當應(yīng)用程序與SQLServer斷開連接時才被停用。提示:應(yīng)用程序一旦激活,只有當應(yīng)用程序與SQLServer斷開連接時才被停用。修改應(yīng)用程序角色gradeapp的口令。刪除應(yīng)用程序角色。練習權(quán)限的授予。⑴把查詢student表的權(quán)限授給用戶 yy?!鮱sexskcI-grantselecton學生to命令已成功完成。把表SC的全部權(quán)限授給用戶yy。gpsexskc1-gran€^11priv丄】亡g亡son學期成纟責toyyl消息遼匸權(quán)限己不再推薦使用,并萌保留用于兼容怪目的:它并不表示對實體定義了A1L權(quán)限;把對表SC的查看權(quán)限授予所有用戶。3usexskc1-grancselecton學期,成纟靑tapublicj消息站令已成功完成把對表SC的插入權(quán)限授予用戶yy,并允許將此權(quán)限再授予其他用戶。Qusexskzc1-grantinserton學貝冃成g責toyywithgrantoption⑸把查詢表student和更新學號Sno的權(quán)限授給用戶yy?!鮱sexstc1-grant口口日玄匸亡(學號]”巳亡J.亡匚匸on學生toyyI :j消息命令已成瓏議「練習權(quán)限的收回。(1)收回所有用戶對表SC的查看權(quán)。0usexskcrevokeselecton學期成紿frompublicJ消息 命令已成功完成。⑵收回用戶yy查詢表student和更新學號Sno的權(quán)限。3usexskc1revok:eupdate學號rselecton罕牛fromyyj消息命令已成功議在表Student上創(chuàng)建一個簡單的視圖,對視圖進行加密,并使用對象資源管理器來查看其屬性???亡XS1CCgo3createviewviewlwithencryptionI-select*frorr.學生where性別『男,rri消息b令已成功完成。采用視圖機制,使數(shù)據(jù)庫用戶 yy只能看到表Student中040003班的學生。USEX5XCgocreateviewview2asselect”from學生諭曲系別?8grantselectonviewstoyy消息令已成功完成。1問題解答〗1.怎樣設(shè)置自動提交事務(wù)模式?自動提交事務(wù)是SQLServer的默認事務(wù)管理模式,只要自動提交事務(wù)模式?jīng)]有被顯式或隱性事務(wù)代替,則SQLServer連接時仍以該默認管理模式進行操作。2.SQLServer的權(quán)限分為幾種?SQLServ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論