202309-實驗三:數據庫的安全性課案_第1頁
202309-實驗三:數據庫的安全性課案_第2頁
202309-實驗三:數據庫的安全性課案_第3頁
202309-實驗三:數據庫的安全性課案_第4頁
202309-實驗三:數據庫的安全性課案_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

202409-實驗三:數據庫的安全性課案試驗三:數據庫的平安性

一、試驗目的

熟識通過SQL對數據進行平安性掌握。

二、試驗平臺

SQLServer2024

三、試驗內容和要求

1、把握Windows登錄名和SQLSERVER登錄名的建立與刪除方法;

2、把握數據庫用戶創建與管理的方法;

3、把握服務器角色的用法;

4、把握數據庫權限授予、拒絕和撤銷的方法;

四、試驗步驟

(一)授權與回收。

授權。在SQLSever中建立多個用戶,給他們給予不同的權限,然后查看是否真正擁有被授予的權限了。

1)建立用戶U1、U2、U3、U4、U5、U6、U7。

2)以系統管理員身份對這7個用戶進行授權。

把查詢Student表的權限授給用戶U1。

GRANTSELECT

ONStudent

TOU1;

把對Student表和Course表的全部操作權限授予用戶U2和U3。

GRANTALLPRIVILEGES

ONStudent

TOU2,U3;

GRANTALLPRIVILEGES

ONCourse

TOU2,U3;

把對表SC的查詢權限授予全部用戶。

GRANTSELECT

ONSC

TOPUBLIC;

把查詢Student表和修改同學學號的權限授給用戶U4。

GRANTUPDATE(Sno),SELECT

ONStudent

TOU4;

把對表SC的INSERT權限授予U5,并允許U5將此權限再授予其他用戶。

GRANTINSERT

ONSC

TOU5

WITHGRANTOPTION;

用戶U5將對表SC的INSERT權限授予U6,并允許將權限轉授給其他用戶。

首先應當以U5的身份重新登錄數據庫,然后再進行授權。

GRANTINSERT

ONSC

TOU6

WITHGRANTOPTION;

用戶U6將對表SC的INSERT權限授予U7。

首先應當以U6的身份重新登錄數據庫,然后再進行授權。

GRANTINSERT

ONSC

TOU7;

3)在授權之后驗證用戶是否擁有了相應的權限。

在執行完上面七個語句之后,我們可以分別以不同用戶的身份登錄數據庫,進行相關操作,檢查系統是否許可。例如:

U4更新Student表的同學學號。

UPDATEStudent

SETSNO=‘95101’

WHERESNO=‘95001’;

顯示更新1條記錄,即U4用戶擁有了對Student表Sno的更新權限。U7向SC表中插入一條數據:(95020,20,88)。

INSERTINTOSCVALUES(‘95020’,’20’,88);

顯示插入1條記錄,即用戶U7擁有了對SC表的插入權限。

回收權限。將授予的權限部分收回,檢查回收后,該用戶是否真正丟失了對數據的相應權限。

1)回收權限。

收回用戶U4修改同學學號的權限。

當前用戶為SYSTEM,直接執行下列語句:

REVOKEUPDATE(SNO)

ONStudent

FROMU4;

收回全部用戶對表SC的查詢權限。

REVOKESELECT

ONSC

FROMPUBLIC;

收回用戶U5對SC表的INSERT權限。

將權限INSERT授予給用戶U5時,允許該用戶將權限再授予給其他用戶;之后,用戶U5將INSERT權限轉授給了U6,U6又將權限轉授給U7。因此,將用戶U5的INSERT權限收回的時候必需級聯收回,不然系統將拒絕執行該命令:

REVOKEINSERT

ONTABLESC

FROMU5CASCADE;

執行該命令之后,U6從U5處獲得的權限也將被收回,U7從U6處獲得的權限也將同時被收回。

2)在回收權限之后驗證用戶是否真正丟失了該權限。

用戶U3查詢表SC。

首先用戶U3重新登錄數據庫TEST。執行命令:

SELECT*FROMSC;

執行失敗,該用戶不擁有此權限。證明用戶U3丟失了對表SC查詢的權限。用戶U6向表SC中插入一條記錄(‘95035’,’3’,92)。

首先用戶U6重新登錄數據庫TEST。執行命令:

INSERTINTOSCVALUES(‘95035’,’3’,92);

執行失敗,該用戶不擁有此權限。證明用戶U6丟失了從用戶U5處獲得的對表SC插入的權限。

(二)數據庫角色。

角色的創建與授權。

創建角色G1。

CREATEROLEG1;

給角色授權,使得角色G1擁有對Student表的SELECT、UPDATE、INSERT的權限。

GRANTSELETE,UPDATE,INSERT

ONSTUDENT

TOG1;

將用戶U1,U3,U7添加到角色G1中來。

EXECsp_addrolemember‘G1’,’u1’

EXECsp_addrolemember‘G1’,’u2’

EXECsp_addrolemember‘G1’,’u3’

將U1,U3,U7添加到角色G1中之后,U1,U3,U7就擁有了G1擁有的全部權限,即對Student表的SELECT、UPDATE、INSERT的權限。

對角色G1的權限進行修改,增加對Student表的DELETE權限,并回收對Student表的INSERT權限。

GRANTDELETE

ONSTUDENT

TOG1;

REVOKEINSERT

ONSTUDENT

FROMG1;

刪除角色G1。

DROPROLEG1;

五、試驗任務

利用試驗二建立的students數據庫和其中的student、course、sc表,完成下列操作:

1、建立SQLServer身份驗證模式的登錄賬戶:log1、log2和log3;(命令方式創建)

CREATELOGINlog1WITH

PASSWORD='821742'

GO

CREATELOGINlog2WITH

PASSWORD='821742'

GO

CREATELOGINlog3WITH

PASSWORD='821742'

GO

2、用log1新建一個數據庫引擎查詢,這時在“可用數據庫”下列列表框中是否能選中students數據庫?為什么?

3、將log1、log2和log3映射為students數據庫中的用戶,用戶名同登錄名;(命令方式創建)

USEstudents

GO

CREATEUSERlog1

FORLOGINlog1

USEstudents

GO

CREATEUSERlog2

FORLOGINlog2

USEstudents

GO

CREATEUSERlog3

FORLOGINlog3

4、在log1建立的數據庫引擎查詢中,在“可用數據庫”下列列表框中選中students數據庫,是否勝利?為什么?

能,由于授予了權限。

5、在log1建立的數據庫引擎查詢中,執行下述語句,能否勝利?為什么?

select*fromcourse

不能,由于Log1所在的數據庫沒有給予查詢權限。

6、授予log1具有course表的查詢權限,授予log2具有course表的插入權限;

7、用log2建立一個數據庫引擎查詢,然后執行下述兩條語句,能否勝利?為什么?

Insertintocoursevalues(‘c101’,’java’,2,3)

Insertintocoursevalues(‘c102’,’操作系統’,4,4)

能,由于Log2給予了插入權限。

再次執行下述語句,能否勝利?為什么?

select*fromcourse

不能,由于log2只有插入的權限,沒有查詢權限。

8、在log1建立的數據庫引擎查詢中,再次執行下述語句:

select*fromcourse

這次能否勝利?為什么?

能,由于log1給予的是查詢功能。

讓log1執行下述語句,能否勝利?為什么?

Insertintocoursevalues('c103','軟件工程',4,6)

不能,由于Log1所在的數據庫沒有給予查詢權限。

9、在students數據庫中建立用戶角色:role1,并將log1和log2添加到此角色中。

10、授予role1角色具有course表的插入、刪除和查詢權限;

11、在log1建立的數據庫引擎查詢中,再次執行下述語句,能否勝利?為什么?

Insertintocoursevalues(‘c103’,’軟件工程’,4,6)

不能,由于Log1所在的數據庫沒有給予查詢權限。

12、在log2建立的數據庫引擎查詢中,再次執行下述語句,能否勝利?為什么?

select*fromcourse

不能,由于Log2所在的數據庫沒有給予查詢權限。

13、用log3建立一個數據庫引擎查詢,并執行下述語句,能否勝利?為什么?

select*fromcourse

不能,由于Log3所在的數據庫沒有給予查詢權限。

14、將log3添加到db_datareader角色中,并在log3建立的數據庫引擎查詢中再次執行下述語句,能否勝利?為什么?

select*fromcourse

15、在log3建立的數據庫引擎查詢中,執行下述語句,能否勝利?為什么?

Insertintocoursevalues(‘c104’,’C語言’,3,1)

溫馨提示

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

評論

0/150

提交評論