201509實驗三數(shù)據(jù)庫的安全性_第1頁
201509實驗三數(shù)據(jù)庫的安全性_第2頁
201509實驗三數(shù)據(jù)庫的安全性_第3頁
201509實驗三數(shù)據(jù)庫的安全性_第4頁
201509實驗三數(shù)據(jù)庫的安全性_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗三:數(shù)據(jù)庫的安全性 一、實驗?zāi)康?熟悉通過SQL對數(shù)據(jù)進行安全性控制。二、實驗平臺 SQL Server 2008三、實驗內(nèi)容和要求1、掌握Windows登錄名和SQL SERVER登錄名的建立與刪除方法;2、掌握數(shù)據(jù)庫用戶創(chuàng)建與管理的方法;3、掌握服務(wù)器角色的用法;4、掌握數(shù)據(jù)庫權(quán)限授予、拒絕和撤銷的方法;四、實驗步驟(一)授權(quán)與回收。例1授權(quán)。在 SQL Sever 中建立多個用戶,給他們賦予不同的權(quán)限,然后查看是否真正擁有被授予的權(quán)限了。1)建立用戶 U1、U2、U3、U4、U5、U6、U7。2)以系統(tǒng)管理員身份對這7個用戶進行授權(quán)。例 1-1把查詢 Student 表的權(quán)限授給用戶

2、 U1。GRANT SELECTON StudentTO U1; 例 1-2把對 Student 表和 Course 表的全部操作權(quán)限授予用戶 U2 和 U3。GRANT ALL PRIVILEGES ON StudentTO U2,U3;GRANT ALL PRIVILEGES ON Course TO U2,U3;例 1-3把對表 SC 的查詢權(quán)限授予所有用戶。GRANT SELECTON SCTO PUBLIC; 例 1-4把查詢 Student 表和修改學(xué)生學(xué)號的權(quán)限授給用戶 U4。GRANT UPDATE (Sno) , SELECTON StudentTO U4; 例 1-5把對表

3、 SC 的 INSERT 權(quán)限授予 U5,并允許 U5 將此權(quán)限再授予其他用戶。GRANT INSERT ON SCTO U5 WITH GRANT OPTION;例 1-6用戶 U5 將對表 SC 的 INSERT 權(quán)限授予 U6,并允許將權(quán)限轉(zhuǎn)授給其他用戶。首先應(yīng)該以 U5 的身份重新登錄數(shù)據(jù)庫,然后再進行授權(quán)。 GRANT INSERT ON SC TO U6 WITH GRANT OPTION;例 1-7用戶 U6 將對表 SC 的 INSERT 權(quán)限授予 U7。首先應(yīng)該以 U6 的身份重新登錄數(shù)據(jù)庫,然后再進行授權(quán)。GRANT INSERT ON SCTO U7; 3)在授權(quán)之后驗證

4、用戶是否擁有了相應(yīng)的權(quán)限。在執(zhí)行完上面七個語句之后,我們可以分別以不同用戶的身份登錄數(shù)據(jù)庫,進行相關(guān)操作,檢查系統(tǒng)是否許可。例如:例 1-8U4 更新 Student 表的學(xué)生學(xué)號。UPDATE StudentSET SNO = 95101WHERE SNO = 95001;顯示更新 1 條記錄,即 U4 用戶擁有了對 Student 表 Sno 的更新權(quán)限。例 1-9U7 向 SC 表中插入一條數(shù)據(jù):(95020,20,88)。INSERT INTO SC VALUES(95020,20,88);顯示插入 1 條記錄,即用戶 U7 擁有了對 SC 表的插入權(quán)限。例2回收權(quán)限。將例 1授予的權(quán)

5、限部分收回,檢查回收后,該用戶是否真正喪失了對數(shù)據(jù)的相應(yīng)權(quán)限。1)回收權(quán)限。例 2-1收回用戶 U4 修改學(xué)生學(xué)號的權(quán)限。當(dāng)前用戶為 SYSTEM,直接執(zhí)行下列語句:REVOKE UPDATE (SNO) ON StudentFROM U4;例 2-2收回所有用戶對表 SC 的查詢權(quán)限。REVOKE SELECTON SCFROM PUBLIC;例 2-3收回用戶 U5 對 SC 表的 INSERT 權(quán)限。將權(quán)限 INSERT 授予給用戶 U5 時,允許該用戶將權(quán)限再授予給其他用戶;之后,用戶U5 將 INSERT 權(quán)限轉(zhuǎn)授給了 U6,U6 又將權(quán)限轉(zhuǎn)授給 U7。因此,將用戶 U5 的 INS

6、ERT 權(quán)限收回的時候必須級聯(lián)收回,不然系統(tǒng)將拒絕執(zhí)行該命令: REVOKE INSERT ON TABLE SC FROM U5 CASCADE;執(zhí)行該命令之后,U6 從 U5 處獲得的權(quán)限也將被收回,U7 從 U6 處獲得的權(quán)限也將同時被收回。2)在回收權(quán)限之后驗證用戶是否真正喪失了該權(quán)限。例 2-4用戶 U3 查詢表 SC。首先用戶 U3 重新登錄數(shù)據(jù)庫 TEST。執(zhí)行命令:SELECT *FROM SC;執(zhí)行失敗,該用戶不擁有此權(quán)限。證實用戶 U3 喪失了對表 SC 查詢的權(quán)限。例 2-5用戶 U6 向表 SC 中插入一條記錄(95035,3,92)。首先用戶 U6 重新登錄數(shù)據(jù)庫 T

7、EST。執(zhí)行命令:INSERT INTO SC VALUES(95035,3,92);執(zhí)行失敗,該用戶不擁有此權(quán)限。證實用戶 U6 喪失了從用戶 U5 處獲得的對表 SC 插入的權(quán)限。(二)數(shù)據(jù)庫角色。例 3角色的創(chuàng)建與授權(quán)。例 3-1創(chuàng)建角色 G1。CREATE ROLE G1;例 3-2給角色授權(quán),使得角色 G1 擁有對 Student 表的 SELECT、UPDATE、INSERT 的權(quán)限。GRANT SELETE,UPDATE,INSERTON STUDENTTO G1;例 3-3將用戶 U1,U3,U7 添加到角色 G1 中來。EXEC sp_addrolemember G1,u1E

8、XEC sp_addrolemember G1,u2EXEC sp_addrolemember G1,u3將 U1,U3,U7 添加到角色 G1 中之后,U1,U3,U7 就擁有了 G1 擁有的所有權(quán)限,即對Student 表的 SELECT、UPDATE、INSERT 的權(quán)限。例 3-4對角色 G1 的權(quán)限進行修改,增加對 Student 表的 DELETE 權(quán)限,并回收對 Student表的 INSERT 權(quán)限。GRANT DELETEON STUDENTTO G1;REVOKE INSERTON STUDENTFROM G1;例 3-5刪除角色 G1。DROP ROLE G1; 5、 實

9、驗任務(wù) 利用實驗二建立的students數(shù)據(jù)庫和其中的student、course、sc表,完成下列操作:1、建立SQL Server身份驗證模式的登錄賬戶:log1、log2和log3;(命令方式創(chuàng)建)CREATE LOGIN log1 WITHPASSWORD='821742'GOCREATE LOGIN log2 WITHPASSWORD='821742'GOCREATE LOGIN log3 WITHPASSWORD='821742'GO2、 用log1新建一個數(shù)據(jù)庫引擎查詢,這時在“可用數(shù)據(jù)庫”下列列表框中是否能選中students數(shù)據(jù)

10、庫?為什么?3、 將log1、log2和log3映射為students數(shù)據(jù)庫中的用戶,用戶名同登錄名;(命令方式創(chuàng)建)USE students GO CREATE USER log1FOR LOGIN log1USE students GO CREATE USER log2FOR LOGIN log2USE students GO CREATE USER log3FOR LOGIN log34、 在log1建立的數(shù)據(jù)庫引擎查詢中,在“可用數(shù)據(jù)庫”下列列表框中選中students數(shù)據(jù)庫,是否成功?為什么?能,因為授予了權(quán)限。5、在log1建立的數(shù)據(jù)庫引擎查詢中,執(zhí)行下述語句,能否成功?為什么?

11、select * from course不能,因為Log1所在的數(shù)據(jù)庫沒有賦予查詢權(quán)限。6、 授予log1具有course表的查詢權(quán)限,授予log2具有course表的插入權(quán)限;7、用log2建立一個數(shù)據(jù)庫引擎查詢,然后執(zhí)行下述兩條語句,能否成功?為什么? Insert into course values(c101,java,2,3) Insert into course values(c102,操作系統(tǒng),4,4)能,因為Log2賦予了插入權(quán)限。再次執(zhí)行下述語句,能否成功?為什么? select * from course不能,因為log2只有插入的權(quán)限,沒有查詢權(quán)限。8、 在log1建立的

12、數(shù)據(jù)庫引擎查詢中,再次執(zhí)行下述語句: select * from course這次能否成功?為什么?能,因為log1賦予的是查詢功能。讓log1執(zhí)行下述語句,能否成功?為什么? Insert into course values('c103','軟件工程',4,6)不能,因為Log1所在的數(shù)據(jù)庫沒有賦予查詢權(quán)限。9、 在students數(shù)據(jù)庫中建立用戶角色:role1,并將log1和log2添加到此角色中。10、 授予role1角色具有course表的插入、刪除和查詢權(quán)限;11、 在log1建立的數(shù)據(jù)庫引擎查詢中,再次執(zhí)行下述語句,能否成功?為什么? Inser

13、t into course values(c103,軟件工程,4,6)不能,因為Log1所在的數(shù)據(jù)庫沒有賦予查詢權(quán)限。12、 在log2建立的數(shù)據(jù)庫引擎查詢中,再次執(zhí)行下述語句,能否成功?為什么? select * from course不能,因為Log2所在的數(shù)據(jù)庫沒有賦予查詢權(quán)限。13、 用log3建立一個數(shù)據(jù)庫引擎查詢,并執(zhí)行下述語句,能否成功?為什么? select * from course不能,因為Log3所在的數(shù)據(jù)庫沒有賦予查詢權(quán)限。14、 將log3添加到db_datareader角色中,并在log3建立的數(shù)據(jù)庫引擎查詢中再次執(zhí)行下述語句,能否成功?為什么? select * from course15、 在log3建立的數(shù)據(jù)庫引擎查詢中,執(zhí)行下述語句,能否成功?為什么? Insert into course va

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論