數據庫實驗七數據控制和實現

又到一週的週三了,還有兩次課一次數據庫實驗了,後面還有一個數據庫的課程設計,聽說有點難。。

不怕就當是自己第一份github項目吧。

一、實驗目的

1.掌握在SQL  SERVER2012中利用界面工具和存儲過程進行登錄賬號和數據庫用戶的創建。

2.能用SQL語言的GRANTREVOKE命令對相關用戶進行對象權限和語句權限的定義和撤銷

 

二、實驗準備及任務

1.複習教材上SQL語言的GRANTREVOKE命令的內容。

2使用教師已經錄入相關數據的附錄二的xsglsjk”數據庫,定義若干用戶、設計相應的訪問權限完成以下內容,預先寫好相應的命令。

1利用界面工具建立一個登錄賬戶‘xsuser1’,然後將這個賬戶添加爲xsglsjk數據庫的用戶

2利用存儲過程sp_addlogin命令建立另兩個登錄賬戶‘xsuser2’‘xsuser3’

3然後利用存儲過程sp_adduser命令將這些賬戶添加爲xsglsjk數據庫的用戶,並且將‘xsuser3’在“xsglsjk數據庫的用戶名起名叫“wangwu”

3sa用戶身份登錄到SQL  Server服務器,再根據需要以不同的登錄賬戶登錄到SQL  Server服務器完成以下任務:

4將查詢courses表的所有權限授給全體用戶,並通過相關操作驗

授權情況

5classclnospecialityinyear的查詢權限numbermonitor

的修改權限授給“xsuser1”用戶,並通過相關操作驗證授權情況

(6)student表的查詢和插入權限授給‘xsuser1’用戶,再由

‘xsuser1’用戶授給‘xsuser2’用戶,繼續由‘xsuser2’用戶

授給“wangwu”用戶,並通過相關操作驗證授權情況

7)由sa用戶將登錄賬戶‘xsuser1’添加爲“master”數據庫的

用戶,再由sa用戶將創建數據庫的權限授予用戶‘xsuser1’,以‘xsuser1’用戶身份登錄到服務器中,創建一個名爲‘newdata數據庫在該數據庫中建立一些表,輸入數據,驗證各種權限

8)由sa用戶將xsglsjk數據庫創建數據表和視圖的權限授予

用戶‘xsuser1’,並建立一些表和視圖驗證。

9‘xsuser1’用戶身份登錄到SQL Server服務器中,並試圖xsglsjk數據庫創建數據表和視圖的權限繼續授予用戶‘xsuser2’, 記錄執行結果。

10)由sa用戶撤銷用戶‘xsuser1’在“xsglsjk數據庫創建數據表和視圖的權限

11)由sa用戶撤銷題(4)和題(5)的授權權限,並通過相關操作

驗證授權情況

12)撤銷相關用戶對student表的查詢和插入權限

三、實驗內容及記錄

 說明:① 注意記錄下GRANTREVOKE命令時的步驟。

② 不同數據庫用戶驗證GRANTREVOKE命令作用時,要另外用對

應的不同登錄賬號登錄,打開相應的命令窗口。

1

2

3

4 

5

6

7

8

9

10

11

12

 

 

四、思考題

1、爲什麼說SQL的數據存取控制是自主存取控制?

2、題(9)的執行情況說明了什麼?

mycode:

sp_addlogin 'xsuser2'
sp_addlogin 'xsuser3'
sp_adduser 'xsuser3','wangwu'
sp_adduser 'xsuser2'

grant all privileges
on course
to public

grant select(clno,speciality,inyear)
on class 
to xsuser1


grant update(number,monitor)
on class 
to xsuser1

grant select,insert
on student
to xsuser1
with grant option

grant select,insert
on student
to xsuser2
with grant opti

grant select,insert
on student
to wangwu
with grant option

sp_adduser 'xsuser1'   --在master的工作環境下

grant create database
to xsuser1

create database
newdata 

grant create table
to xsuser1

grant create view
to xsuser1     



--授權者無grant權限  


revoke create table
from xsuser1
revoke create view
from xsuser1

revoke select(clno,speciality,inyear)
on class
from xsuser1

revoke update(number,monitor)
on class
from xsuser1

revoke select,insert
on student
from xsuser1 cascade
 

思考題:

(2)超級用戶sa在賦予用戶‘xsuser1’創建數據表和視圖權限時,並沒有授予其授給其他用戶的權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章