![實(shí)驗(yàn)五_實(shí)驗(yàn)十_實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/9ab125d9-7ff6-40fa-a190-81b470858bbb/9ab125d9-7ff6-40fa-a190-81b470858bbb1.gif)
![實(shí)驗(yàn)五_實(shí)驗(yàn)十_實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/9ab125d9-7ff6-40fa-a190-81b470858bbb/9ab125d9-7ff6-40fa-a190-81b470858bbb2.gif)
![實(shí)驗(yàn)五_實(shí)驗(yàn)十_實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/9ab125d9-7ff6-40fa-a190-81b470858bbb/9ab125d9-7ff6-40fa-a190-81b470858bbb3.gif)
![實(shí)驗(yàn)五_實(shí)驗(yàn)十_實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/9ab125d9-7ff6-40fa-a190-81b470858bbb/9ab125d9-7ff6-40fa-a190-81b470858bbb4.gif)
![實(shí)驗(yàn)五_實(shí)驗(yàn)十_實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/9ab125d9-7ff6-40fa-a190-81b470858bbb/9ab125d9-7ff6-40fa-a190-81b470858bbb5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)五實(shí)驗(yàn)十 數(shù)據(jù)庫(kù)完整性與安全性實(shí)驗(yàn)存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模? 通過(guò)對(duì)完整性規(guī)則的定義實(shí)現(xiàn),熟悉了解SQL Server數(shù)據(jù)庫(kù)中實(shí)體完整性、參照完整性、斷言等完整性保證的規(guī)則和實(shí)現(xiàn)方法,加深對(duì)數(shù)據(jù)完整性的理解。2 通過(guò)對(duì)安全性相關(guān)內(nèi)容的定義,熟悉了解SQL Server數(shù)據(jù)庫(kù)中安全性的內(nèi)容和實(shí)現(xiàn)方法,加深對(duì)數(shù)據(jù)庫(kù)安全性的理解。實(shí)驗(yàn)內(nèi)容:(一)、 完整性實(shí)驗(yàn)與要求:一、建表階段1 利用SQL語(yǔ)句,分別定義數(shù)據(jù)庫(kù)中各基本表的主鍵、候選鍵、外鍵,實(shí)現(xiàn)實(shí)體完整性約束和參照完整性約束。2 在數(shù)據(jù)庫(kù)中選取兩張或三張具有外鍵關(guān)聯(lián)的表,利用語(yǔ)句foreign keyreferences創(chuàng)建外鍵,實(shí)現(xiàn)參
2、照完整性約束。3 根據(jù)實(shí)際背景,對(duì)某些表中的某些特定屬性,定義空值、非空約束。4 建表時(shí),使用check謂詞,通過(guò)斷言,添加如下一些約束:(1) 個(gè)MSC最多管理10個(gè)BSC。(2) 個(gè)BSC最多管理50個(gè)小區(qū)/扇區(qū)。(3) 個(gè)BTS可以連接至1-3個(gè)BSC。(4) 個(gè)MS可以位于1到6個(gè)BTS的覆蓋范圍內(nèi)。(5) 小區(qū)/扇區(qū)所使用的頻點(diǎn)號(hào)在,124之間。二、主鍵/候選鍵約束驗(yàn)證1. 選取定義了主鍵的關(guān)系表,向該表插入在主屬性上取值為空的元組,觀察系統(tǒng)反應(yīng);選取表中某些或某個(gè)元組,修改這些元組在主屬性上的取值,或插入新元組,使這些元組與表中已有其它元組的主屬性取值相同,觀察系統(tǒng)反應(yīng);2. 選取
3、定義了候選鍵的關(guān)系表,向該表插入在候選鍵屬性上取值為空的元組,觀察系統(tǒng)反應(yīng);選取表中某些或某個(gè)元組,修改這些元組在候選鍵屬性上的取值,或插入新元組,使這些元組與表中已有其它元組的候選鍵屬性取值相同,觀察系統(tǒng)反應(yīng);三、外鍵約束驗(yàn)證1 選取相互間定義了外鍵關(guān)聯(lián)的一組表,分別在參照關(guān)系、被參照關(guān)系上,對(duì)表的主屬性/外鍵屬性作插入、刪除、更新等操作,觀察當(dāng)1個(gè)表(如參照關(guān)系表、被參照關(guān)系表)在外鍵或主屬性屬性上的取值發(fā)生變化時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)這些操作的反應(yīng),以及另外一個(gè)表(如被參照關(guān)系表、參照關(guān)系表)在主屬性或外鍵屬性上的取值的變化,并記錄實(shí)驗(yàn)結(jié)果。 上述插入、刪除、更新操作操作分為違反約束和不違反
4、約束兩種情況。2 觀察級(jí)聯(lián)操作對(duì)外鍵約束的影響1)對(duì)相互間定義了外鍵關(guān)聯(lián)關(guān)系的一組表,分別使用foreign keyreferences on delete cascadeon update cascadeon insert cascade語(yǔ)句創(chuàng)建級(jí)聯(lián)外鍵約束。2) 分別在參照關(guān)系、被參照關(guān)系上,對(duì)表的主屬性/外鍵屬性作插入、刪除、更新等操作,觀察當(dāng)1個(gè)表(如參照關(guān)系表、被參照關(guān)系表)在外鍵或主屬性屬性上的取值發(fā)生變化時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)這些操作的反應(yīng),以及另外一個(gè)表(如被參照關(guān)系表、參照關(guān)系表)在主屬性或外鍵屬性上的取值的變化,并記錄實(shí)驗(yàn)結(jié)果。 上述插入、刪除、更新操作操作分為違反約束和不違
5、反約束兩種情況。三、check/觸發(fā)器約束驗(yàn)證選取建表階段定義的2個(gè)斷言約束,對(duì)斷所涉及的元組屬性做插入、刪除、更新操作,觀察當(dāng)違反斷言、觸發(fā)器約束條件時(shí),DBMS的反映和關(guān)系表內(nèi)元組數(shù)據(jù)的變化(對(duì)觸發(fā)器)。(二)、 安全性實(shí)驗(yàn)內(nèi)容與要求:SQL Server 數(shù)據(jù)庫(kù)實(shí)驗(yàn):SQL Server提供了多種安全機(jī)制。主要的有如下3條:1最小權(quán)限原則:SQL Server通過(guò)給不同用戶賦予不同權(quán)限的方式來(lái)保證安全。本原則要求只給某用戶完成工作所必須的權(quán)限,以盡量減小用戶有意或無(wú)意的錯(cuò)誤對(duì)數(shù)據(jù)庫(kù)造成的損害。2CIA原則:C:機(jī)密性,未授權(quán)者或使用非法手段無(wú)法訪問(wèn)數(shù)據(jù)。I:完整性,未授權(quán)者或使用非法手段
6、無(wú)法修改數(shù)據(jù)。A:可用性,已授權(quán)者可隨時(shí)使用數(shù)據(jù)。3深度防護(hù):實(shí)際上任何一個(gè)程序都運(yùn)行在操作系統(tǒng)上,一臺(tái)計(jì)算機(jī)上還有其它應(yīng)用程序。所以SQL Server的安全不能僅僅考慮本身的安全,而必須結(jié)合操作系統(tǒng)安全及其它相關(guān)因素(比如殺毒軟件和防火墻)來(lái)考慮。這就是深度防護(hù)。SQL Server僅僅運(yùn)行在Windows操作系統(tǒng)上,允許直接使用Windows用戶作為SQL Server用戶,由于是同一公司的產(chǎn)品,其和操作系統(tǒng)的聯(lián)系和配合特別緊密,為其它數(shù)據(jù)庫(kù)所遠(yuǎn)遠(yuǎn)不及的。在SQL Server服務(wù)器及其它Windows服務(wù)器上,應(yīng)該進(jìn)行多方面的安全配置:包括操作系統(tǒng)補(bǔ)丁管理、管理員用戶和組管理、其它本地
7、用戶組管理和設(shè)置本地安全策略。為了提供網(wǎng)絡(luò)上的客戶端訪問(wèn),還需要進(jìn)行端點(diǎn)等相關(guān)設(shè)置。SQL Server對(duì)兩種實(shí)體提供安全機(jī)制。分別是登錄名(以前曾稱為login,現(xiàn)在在T-SQL中仍然這樣使用,但為避免混淆,Microsoft已經(jīng)開(kāi)始改稱其為服務(wù)器主體)和用戶名(user,就是數(shù)據(jù)庫(kù)主體)?,F(xiàn)在有3種登錄名:windows域登錄名(就是域用戶),windows本地登錄名(本地用戶)和SQL Server登錄名。用戶登錄以后,SQL Server將其映射為自己的user,進(jìn)行相應(yīng)安全管理。從而提供了兩種身份認(rèn)證模式:Windows認(rèn)證模式和SQL Server認(rèn)證模式。1Windows認(rèn)證模式
8、SQL Server數(shù)據(jù)庫(kù)系統(tǒng)通常運(yùn)行在NT服務(wù)器平臺(tái)或基于NT 構(gòu)架的Windows server上,而NT作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗(yàn)證用戶合法性的能力,所以Windows認(rèn)證模式正是利用這一用戶安全性和賬號(hào)管理的機(jī)制,允許SQL Server也可以使用NT的用戶名和口令。在該模式下,用戶只要通過(guò)Windows的認(rèn)證就可連接到SQL Server,而SQL Server本身也不需要管理一套登錄數(shù)據(jù)。2SQL Server認(rèn)證模式在SQL Server認(rèn)證模式下,用戶在連接到SQL Server時(shí)必須提供建立在SQL Server上的用戶名(登錄名)和登錄密碼,這些登錄信息存儲(chǔ)在
9、系統(tǒng)表syslogins中,與NT的登錄賬號(hào)無(wú)關(guān)。SQL Server自己執(zhí)行認(rèn)證處理,如果輸入的登錄信息與系統(tǒng)表syslogins 中的某條記錄相匹配則表明登錄成功。注:該方式常用于系統(tǒng)開(kāi)發(fā)中,因?yàn)榭蛻魴C(jī)常常與服務(wù)器不是同一臺(tái)計(jì)算機(jī),甚至也不在同一個(gè)windows域中,所以使用該方式進(jìn)行登錄比較方便。實(shí)驗(yàn)內(nèi)容:(1) 以DBA身份(可以是SQL Server上的sa或者windows上的系統(tǒng)管理組的某個(gè)成員)登陸系統(tǒng),在圖形界面下創(chuàng)建新登錄,新建登錄用戶可以使用Windows認(rèn)證模式和SQL Server認(rèn)證模式。(2) 使用T-SQL命令create login login-name 和c
10、reate login login-name from windows重復(fù)第1步的內(nèi)容。(3) 在服務(wù)器角色選項(xiàng)卡中賦予新建用戶角色。完成后查找T-SQL中對(duì)應(yīng)命令,在圖形界面上撤消該權(quán)限后使用命令完成授予權(quán)限和收回權(quán)限的任務(wù)。(4) 將新建用戶映射到移動(dòng)通信數(shù)據(jù)庫(kù)某用戶。執(zhí)行相關(guān)SQL操作,檢查該用戶的權(quán)限。用戶在權(quán)限范圍內(nèi)、超出權(quán)限范圍訪問(wèn)相應(yīng)數(shù)據(jù)對(duì)象,查看訪問(wèn)結(jié)果和DBMS的反映。(5) 對(duì)特定服務(wù)器對(duì)象設(shè)置權(quán)限,雙擊登錄名以后選擇安全對(duì)象,賦予該登錄名對(duì)服務(wù)器內(nèi)的某個(gè)對(duì)象的權(quán)限。執(zhí)行相關(guān)SQL操作,檢查該用戶的權(quán)限。用戶在權(quán)限范圍內(nèi)、超出權(quán)限范圍訪問(wèn)相應(yīng)數(shù)據(jù)對(duì)象,查看訪問(wèn)結(jié)果和DBMS
11、的反映。(6) 分別在圖形化界面、命令行中,撤銷用戶權(quán)限。(7) 分別在圖形化界面、命令行中,刪除數(shù)據(jù)庫(kù)用戶。(8) 根據(jù)實(shí)際操作,指出服務(wù)器角色和數(shù)據(jù)庫(kù)角色有多少種,分別有什么權(quán)限?(9) 創(chuàng)建數(shù)據(jù)庫(kù)時(shí),還會(huì)自動(dòng)創(chuàng)建 SYS、GUEST 和 dbo 組。通過(guò)幫助文檔,了解這些組在數(shù)據(jù)庫(kù)中起到的作用。(10) 以DBA身份登陸系統(tǒng),創(chuàng)建用戶組,為用戶組授予(grant)或撤銷(revoke)針對(duì)數(shù)據(jù)庫(kù)中表、視圖等不同數(shù)據(jù)對(duì)象的不同訪問(wèn)權(quán)限。(11) 將組成員資格授予現(xiàn)有用戶或組,現(xiàn)有用戶或組訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象,查看訪問(wèn)結(jié)果。撤銷現(xiàn)有用戶或組的組成員資格,查看訪問(wèn)結(jié)果。(12) 分別在圖形化界面、命
12、令行中,從數(shù)據(jù)庫(kù)刪除組。(13) 分別采用Windows認(rèn)證方式和SQL Server認(rèn)證方式用不同的用戶進(jìn)行登錄連接。(14) 創(chuàng)建數(shù)據(jù)庫(kù)角色,并授予訪問(wèn)通信數(shù)據(jù)庫(kù)的讀、寫(xiě)權(quán)限,并對(duì)其中的Cell表數(shù)據(jù)進(jìn)行修改。(15) 將角色賦予(1)中定義的用戶,建立用戶和角色聯(lián)系。(16) 再次用此用戶訪問(wèn)通信數(shù)據(jù)庫(kù),并對(duì)其中的Cell表數(shù)據(jù)進(jìn)行修改。實(shí)驗(yàn)環(huán)境:Windows XP,Microsoft SQL Server 2005實(shí)驗(yàn)步驟及結(jié)果分析:(一)、 完整性實(shí)驗(yàn)與要求:一、建表階段1 利用SQL語(yǔ)句,分別定義數(shù)據(jù)庫(kù)中各基本表的主鍵、候選鍵、外鍵,實(shí)現(xiàn)實(shí)體完整性約束和參照完整性約束。主鍵、外鍵
13、見(jiàn)附錄1建表代碼候選鍵:alter table MS add constraint UQ_UserName unique(UserName)2 在數(shù)據(jù)庫(kù)中選取兩張或三張具有外鍵關(guān)聯(lián)的表,利用語(yǔ)句foreign keyreferences創(chuàng)建外鍵,實(shí)現(xiàn)參照完整性約束。見(jiàn)附錄1建表代碼3 根據(jù)實(shí)際背景,對(duì)某些表中的某些特定屬性,定義空值、非空約束。見(jiàn)附錄1建表代碼4 建表時(shí),使用check謂詞,通過(guò)斷言,添加如下一些約束:(1) 個(gè)MSC最多管理10個(gè)BSC。create trigger BSC_to_MSC on BSC for insert,update asif exists(select
14、MSC.MscIDfrom MSC,(select MscID,count(BscId)as BSC_number from BSCgroup by MscID) as MSC_count_BSC-以MscID為依據(jù)分組,然后新建一個(gè)表MSC_count_BSC,里面有兩個(gè)屬性,MscID和BSC_numberwhere BSC_number>10 and MSC.MscID=MSC_count_BSC.MscID)beginprint 'A MSC can only manage at most 10 BSCs.'-出錯(cuò)了,提示rollback transactione
15、nd(2) 個(gè)BSC最多管理50個(gè)小區(qū)/扇區(qū)。create trigger cell_to_BSC on cell for insert,update asif exists(select BSC.BscIdfrom BSC,(select BSC.BscId,count(distinct CellID)as cell_number from cell,BSC,BTSwhere BSC.BscId=BTS.BscId and BTS.BtsName=cell.BtsNamegroup by BSC.BscId) as BSC_count_cellwhere cell_number>50
16、and BSC.BscId=BSC_count_cell.BscId)begin print'A BSC can only manage at most 50 cells'rollback transactionend(3) 個(gè)BTS可以連接至1-3個(gè)BSC。create trigger BTS_to_BSC on BTS for insert,update asif exists( select BTS.BtsName from BTS,( select BtsName,count(BscId) as BSC_number from BTS group by BtsName)
17、 as BTS_Count_BSC where BTS.BtsName = BTS_Count_BSC.BtsName and BSC_number not between 1 and 3)beginprint 'A BTS can only connect to at least 1 and at most 3 BSCs.'rollback transactionend(4) 個(gè)MS可以位于1到6個(gè)BTS的覆蓋范圍內(nèi)。create trigger MS_to_BTS on MS for insert,update asif exists( select MS.IMEI fro
18、m MS, ( select IMEI,count(CellID) as BTS_number from MS,Cell group by IMEI ) as MS_Count_BTS where MS.IMEI = MS_Count_BTS.IMEI and MS_Count_BTS.BTS_number not between 1 and 6)beginprint 'An MS can only be covered by at least 1 and at most 6 BTSs.'rollback transactionend(5) 小區(qū)/扇區(qū)所使用的頻點(diǎn)號(hào)在,124之
19、間。alter table pindian add constraint CK_freq check(Freq between 1 and 124)二、主鍵/候選鍵約束驗(yàn)證1. 選取定義了主鍵的關(guān)系表,向該表插入在主屬性上取值為空的元組,觀察系統(tǒng)反應(yīng);選取表中某些或某個(gè)元組,修改這些元組在主屬性上的取值,或插入新元組,使這些元組與表中已有其它元組的主屬性取值相同,觀察系統(tǒng)反應(yīng);插入主屬性為空的元組:插入重復(fù)主鍵:2. 選取定義了候選鍵的關(guān)系表,向該表插入在候選鍵屬性上取值為空的元組,觀察系統(tǒng)反應(yīng);選取表中某些或某個(gè)元組,修改這些元組在候選鍵屬性上的取值,或插入新元組,使這些元組與表中已有其它元
20、組的候選鍵屬性取值相同,觀察系統(tǒng)反應(yīng);插入候選鍵屬性值為空:插入失敗,原因未知。插入重復(fù)候選鍵:反正,結(jié)論就是:主鍵不能為空,且不能重復(fù);候選鍵可以為空但不能重復(fù)。三、外鍵約束驗(yàn)證1 選取相互間定義了外鍵關(guān)聯(lián)的一組表,分別在參照關(guān)系、被參照關(guān)系上,對(duì)表的主屬性/外鍵屬性作插入、刪除、更新等操作,觀察當(dāng)1個(gè)表(如參照關(guān)系表、被參照關(guān)系表)在外鍵或主屬性屬性上的取值發(fā)生變化時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)這些操作的反應(yīng),以及另外一個(gè)表(如被參照關(guān)系表、參照關(guān)系表)在主屬性或外鍵屬性上的取值的變化,并記錄實(shí)驗(yàn)結(jié)果。 上述插入、刪除、更新操作操作分為違反約束和不違反約束兩種情況。以BSC為被參照表,BTS為參照表
21、,外鍵為BscId。對(duì)被參照表操作:(1) 插入:A違反約束:不存在。B不違反約束:(2) 刪除:A 違反約束:參照表中的外鍵引用了此值B 不違反約束:參照表中的外鍵沒(méi)有引用此值(3)更新:A違反約束:參照表中的外鍵引用了此主屬性的值,則此主屬性不能修改。B不違反約束:被參照表中的外鍵沒(méi)有引用此主屬性的值(不是主屬性的其他屬性可以任意修改)對(duì)參照表操作:(1)插入:A違反約束:被參照表的主鍵中沒(méi)有此值B不違反約束:被參照表的主鍵再有此值(2)刪除:A違反約束:不存在B不違反約束:(3)更新:A違反約束:被參照表的主鍵中沒(méi)有此值,則外鍵不能設(shè)為此值。B不違反約束:被參照表的主鍵中有此值結(jié)論:被參
22、照表參照表違反約束不違反約束違反約束不違反約束插入無(wú)全部主鍵無(wú)此值主鍵有此值刪除外鍵有此值外鍵無(wú)此值無(wú)全部更新外鍵有此值外鍵無(wú)此值主鍵無(wú)此值主鍵有此值2 觀察級(jí)聯(lián)操作對(duì)外鍵約束的影響1)對(duì)相互間定義了外鍵關(guān)聯(lián)關(guān)系的一組表,分別使用foreign keyreferences on delete cascadeon update cascadeon insert cascade語(yǔ)句創(chuàng)建級(jí)聯(lián)外鍵約束。首先刪除原先的外鍵約束:Alter table BSC drop constraint FK_bs為保證其效果,把與BSC相關(guān)的外鍵約束也刪除Alter table BTS drop constrain
23、t FK_bt然后創(chuàng)建級(jí)聯(lián)外鍵約束:2) 分別在參照關(guān)系、被參照關(guān)系上,對(duì)表的主屬性/外鍵屬性作插入、刪除、更新等操作,觀察當(dāng)1個(gè)表(如參照關(guān)系表、被參照關(guān)系表)在外鍵或主屬性屬性上的取值發(fā)生變化時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)這些操作的反應(yīng),以及另外一個(gè)表(如被參照關(guān)系表、參照關(guān)系表)在主屬性或外鍵屬性上的取值的變化,并記錄實(shí)驗(yàn)結(jié)果。 注:上述插入、刪除、更新操作操作分為違反約束和不違反約束兩種情況。對(duì)被參照表操作:(1)插入:A違反約束:不存在。B不違反約束:(2)刪除:A.違反約束:參照表的外鍵中引用了此值不僅刪除被參照表中的元組,連同參照表中與之有關(guān)的所有元組也刪除。操作前:執(zhí)行操作delete
24、from MSC where MscId=5214 后:B不違反約束:參照表的外鍵中沒(méi)有引用此值僅刪除被參照表中的元組。(3)更新:A違反約束:參照表的外鍵中引用了此值不僅更新被參照表中的主鍵值,而且更新參照表中所有與之相關(guān)的外鍵值。執(zhí)行操作前:執(zhí)行操作update MSC set MscID=5211 where MscID=5215后:B不違反約束:參照表的外鍵中沒(méi)有引用此值,僅更新被參照表中的主鍵值。對(duì)參照表操作:(1)插入:A違反約束:被參照表的主鍵無(wú)此值。B不違反約束:被參照表的主鍵有此值。(2)刪除:A違反約束:不存在。B不違反約束:全部。但是被參照表相應(yīng)元組不會(huì)被刪除。(3)更新
25、:A違反約束:被參照表主鍵中沒(méi)有此值,則外鍵不能設(shè)為此值。B不違反約束:被參照表的主鍵中有此值。執(zhí)行后結(jié)果結(jié)論:對(duì)參照表的操作與默認(rèn)的no action并無(wú)不同;對(duì)被參照表的操作,插入操作也沒(méi)有不同,刪除和更新操作,級(jí)聯(lián)外鍵約束不僅更改被參照表主鍵,還會(huì)更改與之相關(guān)聯(lián)的參照表的外鍵。當(dāng)用戶的操作違反約束時(shí),SQL 提供了兩種可選方案供數(shù)據(jù)庫(kù)實(shí)現(xiàn)者使用:RESTRICT(限制策略);CASCADE(級(jí)聯(lián)策略);<1>限制策略限制策略是SQL的默認(rèn)策略,任何違反參照完整性的更新均被系統(tǒng)拒絕。<2>級(jí)聯(lián)策略當(dāng)用戶刪除或更新外鍵所指向的鍵時(shí),SQL提供了另一種方案,即級(jí)聯(lián)策略。
26、通過(guò)在REFERENCES子句后添加ON DELETE 和 ON UPDATE子句實(shí)現(xiàn): ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION 如果沒(méi)有指定ON DELETE 或 ON UPDATE,則默認(rèn)為NO ACTION。 ON DELETE NO ACTION指定如果試圖刪除某行,而該行含有由其它表的現(xiàn)有行中的外鍵所引用的鍵,則產(chǎn)生錯(cuò)誤并回滾 DELETE。ON UPDATE NO ACTION指定如果試圖更新某行中的鍵值,而該行含有由其它表的現(xiàn)有行中的外鍵所引用的鍵,則產(chǎn)生錯(cuò)誤并回滾 U
27、PDATE。CASCADE 允許在表間級(jí)聯(lián)鍵值的刪除或更新操作,這些表的外鍵關(guān)系可追溯到執(zhí)行修改的表。不能為任何具有 timestamp 列的外鍵和主鍵指定 CASCADE。ON DELETE CASCADE指定如果試圖刪除某行,而該行含有由其它表的現(xiàn)有行中的外鍵所引用的鍵,則也將刪除所有包含那些外鍵的行。如果在目標(biāo)表上也定義了級(jí)聯(lián)引用操作,則對(duì)從那些表中刪除的行同樣采取指定的級(jí)聯(lián)操作。ON UPDATE CASCADE指定如果試圖更新某行中的鍵值,而該行的鍵值由其它表的現(xiàn)有行中的外鍵所引用,則所有外鍵值也將更新成為該鍵指定的新值。如果在目標(biāo)表上也定義了級(jí)聯(lián)引用操作,則對(duì)在那些表中更新的鍵值同
28、樣采取指定的級(jí)聯(lián)操作。三、check/觸發(fā)器約束驗(yàn)證選取建表階段定義的2個(gè)斷言約束,對(duì)斷所涉及的元組屬性做插入、刪除、更新操作,觀察當(dāng)違反斷言、觸發(fā)器約束條件時(shí),DBMS的反映和關(guān)系表內(nèi)元組數(shù)據(jù)的變化(對(duì)觸發(fā)器)。(1) 個(gè)MSC最多管理10個(gè)BSC。插入:插入之前MscID為5215的MSC已經(jīng)管理了10個(gè)BSC。元組內(nèi)數(shù)據(jù)不變。刪除:刪除操作全部成功。更新:操作前執(zhí)行操作前面那個(gè)操作如果操作成功則MscID為5215的MSC將管理超過(guò)10個(gè)BSC,違反約束則操作不能成功。后面那個(gè)操作成功后則不會(huì)違反約束,因此操作成功。(2) 小區(qū)/扇區(qū)所使用的頻點(diǎn)號(hào)在,124之間。插入:頻點(diǎn)號(hào)不在1,12
29、4之間,插入失敗。頻點(diǎn)號(hào)在1,124之間,插入成功。刪除:刪除操作全部成功。更新:結(jié)論:只要操作后不違反約束就操作就可以進(jìn)行,如果操作后違反約束則操作不能進(jìn)行。(二)、 安全性實(shí)驗(yàn)內(nèi)容與要求:(1) 以DBA身份(可以是SQL Server上的sa或者windows上的系統(tǒng)管理組的某個(gè)成員)登陸系統(tǒng),在圖形界面下創(chuàng)建新登錄,新建登錄用戶可以使用Windows認(rèn)證模式和SQL Server認(rèn)證模式。以DBA身份登錄系統(tǒng):在圖形界面下創(chuàng)建新登錄:注意要把“強(qiáng)制密碼過(guò)期”選項(xiàng)的勾去掉,不然會(huì)出錯(cuò)。(此版本不能建立Windows認(rèn)證模式。)(2) 使用T-SQL命令create login login
30、-name 和create login login-name from windows重復(fù)第1步的內(nèi)容。(3) 在服務(wù)器角色選項(xiàng)卡中賦予新建用戶角色。完成后查找T-SQL中對(duì)應(yīng)命令,在圖形界面上撤消該權(quán)限后使用命令完成授予權(quán)限和收回權(quán)限的任務(wù)。圖形化新建用戶:(注意用戶在每個(gè)數(shù)據(jù)庫(kù)里而登錄名在數(shù)據(jù)庫(kù)之外)用SQL語(yǔ)句新建用戶:圖形化賦予新建用戶角色:如上圖點(diǎn)擊屬性,也可以在新建的時(shí)候就勾選數(shù)據(jù)庫(kù)角色成員身份的相應(yīng)選項(xiàng)。可以在相應(yīng)角色里面是否有該角色成員查看是否賦予角色成功。SQL命令為刪除角色的SQL命令為(4) 將新建用戶映射到移動(dòng)通信數(shù)據(jù)庫(kù)某用戶。執(zhí)行相關(guān)SQL操作,檢查該用戶的權(quán)限。用戶
31、在權(quán)限范圍內(nèi)、超出權(quán)限范圍訪問(wèn)相應(yīng)數(shù)據(jù)對(duì)象,查看訪問(wèn)結(jié)果和DBMS的反映。將登錄名lm映射到移動(dòng)通信數(shù)據(jù)庫(kù)GSM用戶lm:查看用戶lm的權(quán)限用戶在權(quán)限內(nèi)訪問(wèn)數(shù)據(jù)庫(kù)GSM(退出Windows登錄,用lm登錄)但是看不到數(shù)據(jù)庫(kù)內(nèi)部的表,因?yàn)橹挥衏onnect權(quán)限,沒(méi)有訪問(wèn)權(quán)限。用戶超出權(quán)限范圍訪問(wèn)數(shù)據(jù)庫(kù)third(5) 對(duì)特定服務(wù)器對(duì)象設(shè)置權(quán)限,雙擊登錄名以后選擇安全對(duì)象,賦予該登錄名對(duì)服務(wù)器內(nèi)的某個(gè)對(duì)象的權(quán)限。執(zhí)行相關(guān)SQL操作,檢查該用戶的權(quán)限。用戶在權(quán)限范圍內(nèi)、超出權(quán)限范圍訪問(wèn)相應(yīng)數(shù)據(jù)對(duì)象,查看訪問(wèn)結(jié)果和DBMS的反映。賦予登錄名lm對(duì)服務(wù)器某對(duì)象的權(quán)限:賦予用戶lm對(duì)數(shù)據(jù)庫(kù)GSM中表BSC
32、的權(quán)限:查看用戶lm的權(quán)限:退出Windows登錄,用lm登錄。用戶在權(quán)限內(nèi)操作用戶超出權(quán)限操作(6) 分別在圖形化界面、命令行中,撤銷用戶權(quán)限。執(zhí)行完后查看權(quán)限(7) 分別在圖形化界面、命令行中,刪除數(shù)據(jù)庫(kù)用戶。(8) 根據(jù)實(shí)際操作,指出服務(wù)器角色和數(shù)據(jù)庫(kù)角色有多少種,分別有什么權(quán)限?/*服務(wù)器角色*/ -8種sysadmin-在 SQL Server 中進(jìn)行任何活動(dòng)。該角色的權(quán)限跨越所有其它固定服務(wù)器角色。 serveradmin -配置服務(wù)器范圍的設(shè)置。 setupadmin -添加和刪除鏈接服務(wù)器,并執(zhí)行某些系統(tǒng)存儲(chǔ)過(guò)程(如 sp_servero
33、ption)。 securityadmin -管理服務(wù)器登錄。 processadmin -管理在 SQL Server 實(shí)例中運(yùn)行的進(jìn)程。 dbcreator -創(chuàng)建和改變數(shù)據(jù)庫(kù)。 diskadmin -管理磁盤文件。 bulkadmin -執(zhí)行 BULK INSERT 語(yǔ)句。/*數(shù)據(jù)庫(kù)角色*/-10種publicpublic 角色-public 角色是一個(gè)特殊的數(shù)據(jù)庫(kù)角色,每個(gè)數(shù)據(jù)庫(kù)用戶都屬于它。public 角色: -捕獲數(shù)據(jù)庫(kù)中用戶的所有默認(rèn)權(quán)限。-無(wú)法將用戶、組或角色指派給它
34、,因?yàn)槟J(rèn)情況下它們即屬于該角色。-含在每個(gè)數(shù)據(jù)庫(kù)中,包括 master、msdb、tempdb、model 和所有用戶數(shù)據(jù)庫(kù)。-無(wú)法除去。db_owner -進(jìn)行所有數(shù)據(jù)庫(kù)角色的活動(dòng),以及數(shù)據(jù)庫(kù)中的其它維護(hù)和配置活動(dòng)。-該角色的權(quán)限跨越所有其它固定數(shù)據(jù)庫(kù)角色。db_accessadmin -在數(shù)據(jù)庫(kù)中添加或刪除 Windows NT 4.0 或 Windows 2000 組和用戶以及 SQL Server 用戶。 db_datareader -查看來(lái)自數(shù)據(jù)庫(kù)中所有用戶表的全部數(shù)據(jù)。db_datawriter -添加、更改或刪除來(lái)自數(shù)據(jù)庫(kù)中所有
35、用戶表的數(shù)據(jù)db_ddladmin -添加、修改或除去數(shù)據(jù)庫(kù)中的對(duì)象(運(yùn)行所有 DDL)db_securityadmin -管理 SQL Server 2000 數(shù)據(jù)庫(kù)角色的角色和成員,并管理數(shù)據(jù)庫(kù)中的語(yǔ)句和對(duì)象權(quán)限db_backupoperator -有備份數(shù)據(jù)庫(kù)的權(quán)限db_denydatareader -拒絕選擇數(shù)據(jù)庫(kù)數(shù)據(jù)的權(quán)限db_denydatawriter-拒絕更改數(shù)據(jù)庫(kù)數(shù)據(jù)的權(quán)限 (9) 創(chuàng)建數(shù)據(jù)庫(kù)時(shí),還會(huì)自動(dòng)創(chuàng)建 SYS、GUEST 和 dbo 組。通過(guò)幫助文檔,了解這些組在數(shù)據(jù)庫(kù)中起到的作用。公共角色public 角色
36、包含在每個(gè)數(shù)據(jù)庫(kù)中,包括系統(tǒng)數(shù)據(jù)庫(kù)。 無(wú)法刪除該角色,也無(wú)法向其中添加用戶或從中刪除用戶。 授予 public 角色的權(quán)限由所有其他用戶和角色繼承,因?yàn)槟J(rèn)情況下,它們屬于 public 角色。 僅為 public 角色授予您希望所有用戶都具有的權(quán)限。dbo 用戶帳戶dbo 或數(shù)據(jù)庫(kù)所有者是具有在數(shù)據(jù)庫(kù)中執(zhí)行所有活動(dòng)的默示權(quán)限的用戶帳戶。 sysadmin 固定服務(wù)器角色的成員會(huì)自動(dòng)映射到 dbo。dbo 用戶帳戶經(jīng)常與 db_owner
37、0;固定數(shù)據(jù)庫(kù)角色相混淆。 db_owner 的作用域是一個(gè)數(shù)據(jù)庫(kù);sysadmin 的作用域是整個(gè)服務(wù)器。 db_owner 角色中的成員無(wú)法授予 dbo 用戶特權(quán)。guest 用戶帳戶用戶經(jīng)過(guò)身份驗(yàn)證并允許登錄 SQL Server 的實(shí)例后,用戶需要訪問(wèn)的每個(gè)數(shù)據(jù)庫(kù)中必須存在一個(gè)單獨(dú)的用戶帳戶。 要求每個(gè)數(shù)據(jù)庫(kù)中具有用戶帳戶會(huì)阻止用戶連接到 SQL Server 的實(shí)例,并且會(huì)阻止用戶訪問(wèn)服務(wù)器上的所有數(shù)據(jù)庫(kù)。 通過(guò)允許沒(méi)有數(shù)據(jù)庫(kù)用戶帳戶的登錄訪問(wèn)數(shù)據(jù)庫(kù),可在數(shù)據(jù)庫(kù)中包含 guest
38、60;用戶帳戶時(shí)避開(kāi)此要求。在所有版本的 SQL Server 中,guest 帳戶均為內(nèi)置帳戶。 默認(rèn)情況下,它在新的數(shù)據(jù)庫(kù)中是禁用的。 如果啟用此帳戶,則可以通過(guò)撤消其 CONNECT 權(quán)限(方法是執(zhí)行 Transact-SQL REVOKE CONNECT FROM GUEST 語(yǔ)句)來(lái)禁用此帳戶。 在 SQL Server 2000 中,可以通過(guò)執(zhí)行 Transact-SQL sp_dropuser 或 sp_revokedbaccess 系統(tǒng)存儲(chǔ)過(guò)程來(lái)禁用此帳戶。實(shí)驗(yàn)總結(jié):通過(guò)本次實(shí)驗(yàn)了解了主鍵和候選鍵的性質(zhì)及其不同,了解了外鍵約束的特性以及c
39、heck/觸發(fā)的限制作用。另外也進(jìn)一步熟悉了SQL Server的登錄名、用戶、角色等基本信息,了解了SQL Server在安全性方面做的一些限制,對(duì)用戶的授權(quán)、收回權(quán)限等操作。遇到的問(wèn)題主要出現(xiàn)在安全性實(shí)驗(yàn)方面,開(kāi)始不熟悉界面,找不到位置并且也沒(méi)有搞清楚登錄名和用戶的區(qū)別。后來(lái)經(jīng)過(guò)查資料以及多次操作驗(yàn)證弄清了它們的區(qū)別和聯(lián)系。附錄1建表代碼:create table MSC(MscIdfloat,MscNamechar(255),MscCompanychar(255),MscLongitudefloat,MscLatitudefloat,MscAltitudefloat,primary ke
40、y(MscId)create table BSC(BscIdfloat,BscNamechar(255),BscCompanychar(255),Longitudefloat,Latitudefloat,MscIdfloat,primary key(BscId),foreign key(MscId)references MSC)create table BTS(BtsNamechar(255),BscIdfloat,Longitudefloat,Latitudefloat,Altitudefloat,BtsCompanychar(255),BtsPowerfloat,primary key(B
41、tsName),foreign key(BscId)references BSC)create table cell(CellIdfloat,BtsNamechar(255),AreaNamechar(255),LACfloat,Longitudefloat,Latitudefloat,Directionfloat,Radiousfloat,Bcchfloat,primary key(CellId),foreign key(BtsName)references BTS)create table data(DATEint,TIMEint,CellIdfloat,nTCHint,trafffloa
42、t,ratefloat,thtrafffloat,callnumint,congsnumint,callcongsfloat,primary key(DATE,TIME),foreign key(CellId)references cell)create table luce(KeyNumfloat,CellIdfloat,Latitudefloat,Longitudefloat,RxLevfloat,primary key(KeyNum),foreign key(CellId)references cell)create table MS(IMEIfloat,MSISDNfloat,User
43、Namechar(255),MSCCompanychar(255),gsmMspSensefloat,gsmMspHeightfloat,gsmMspFoutfloat,MZONEchar(255),primary key(IMEI)create table neighbor(CellIdfloat,AdjCellIdfloat,CellLacfloat,AdjCellLacfloat,F5char(255),primary key(CellId,AdjCellId)create table pindian(CellIdfloat references cell,Freqfloat prima
44、ry key)create table tianxian(CellIdfloat references cell,AntennaHighfloat,HalfPAnglefloat,MaxAttenuation float,Gainfloat,AntTiltfloat,Ptfloat,MsPwrfloat)實(shí)驗(yàn)?zāi)康模?理解存儲(chǔ)過(guò)程的工作原理和作用。 2掌握存儲(chǔ)過(guò)程設(shè)置和程序設(shè)計(jì)過(guò)程。 3理解觸發(fā)器的工作原理和作用。 4掌握觸發(fā)器編寫(xiě)方法。 實(shí)驗(yàn)內(nèi)容:一、存儲(chǔ)過(guò)程實(shí)驗(yàn)1針對(duì)下面2個(gè)完整性約束條件,建立存儲(chǔ)過(guò)程,實(shí)現(xiàn)當(dāng)數(shù)據(jù)導(dǎo)入或更新時(shí),可以自動(dòng)修改擁塞率、半速率話務(wù)量比例(1) 擁塞率擁塞數(shù)量呼叫數(shù)量(2) 半速率話務(wù)量比例半速率
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度金屬銅棒市場(chǎng)調(diào)研與預(yù)測(cè)服務(wù)合同范本
- 2025年度智能制造合伙創(chuàng)業(yè)合同協(xié)議書(shū)
- 連云港江蘇連云港市贛榆區(qū)招聘勞務(wù)派遣社區(qū)矯正專職社會(huì)工作者和行政復(fù)議輔助人員7人筆試歷年參考題庫(kù)附帶答案詳解
- 貴州2025年貴州科學(xué)院招聘12人筆試歷年參考題庫(kù)附帶答案詳解
- 貴州2025年貴州省人民檢察院直屬事業(yè)單位招聘3人筆試歷年參考題庫(kù)附帶答案詳解
- 貴州2025年貴州大學(xué)附屬中學(xué)招聘6人筆試歷年參考題庫(kù)附帶答案詳解
- 衢州2025年浙江衢州職業(yè)技術(shù)學(xué)院高層次緊缺人才招引38人筆試歷年參考題庫(kù)附帶答案詳解
- 水解彈性蛋白項(xiàng)目融資計(jì)劃書(shū)
- 綿陽(yáng)2025上半年四川綿陽(yáng)梓潼縣考調(diào)事業(yè)單位工作人員10人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)塑焊機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 員工安全健康手冊(cè)
- 華為客服制度
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案1套
- 醫(yī)美面部抗衰老注射項(xiàng)目培訓(xùn)課件
- 2024-2029年中國(guó)限幅器芯片行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 醫(yī)療器械市場(chǎng)規(guī)劃
- 2024年3月山東省直監(jiān)獄類面試題及參考答案全套
- 新產(chǎn)品研發(fā)工作總結(jié)匯報(bào)
- Optix-OSN3500智能化光傳輸設(shè)備業(yè)務(wù)配置手冊(cè)范本
- swagelok管接頭安裝培訓(xùn)教程
- 公墓管理考核方案
評(píng)論
0/150
提交評(píng)論