數據庫----實驗3 視圖機制在自主存取控制上的應用

我從前最怕旁人火眼金睛,如今,倒是盼着有人能夠洞幽燭遠。如此,就能贈我一點歡喜。

一、實驗目的

         通過實驗加深對數據庫安全性的理解,熟悉視圖機制在自主存取控制上的應用。

二、實驗內容 1

1. 問題描述

2. 數據庫設計

創建視圖:

Create view

<視圖名>[(<列名>[,<列名>]…)]

As <子查詢>

[with check option]

組成視圖的屬性名全部聖洛或全部指定

授權(grant

Grant <權限> [,<權限>…]

[on <對象類型> <對象名>]

To <用戶>[,<用戶>…]

[with grant option]

回收(revoke

Revoke <權限> [,<權限>…]

[on <對象類型> <對象名>]

From <用戶>[,<用戶>…]

角色創建

Create role <角色名>

給角色授權:

Grant <權限> [,<權限>…]

[on <對象類型> <對象名>]

To <角色>[,<角色>…]

角色權限收回:

Revoke <權限> [,<權限>…]

[on <對象類型> <對象名>]

From <角色>[,<角色>…]

3. 程序實現與測試

(注意寫程序的規範:標識符用法、一句一行、縮格排放、合理的註釋等。)

(1)代碼及步驟如下:

1)創建李勇用戶

--首先使用sp_addlogin添加登錄

--exec sp_addlogin '用戶名','密碼',默認數據庫

exec sp_addlogin '李勇','123456','school','English'

--然後向該用戶授予訪問某數據庫的權限

go

use school

exec sp_grantdbaccess'李勇';

2)在CHOICES表上創建CS_View視圖

go

create view CS_View

as

select *

from CHOICES

where cid='10010';

3)在視圖CS_View上給用戶李勇授予select的權限

use School

go

grant select

on CS_View

to 李勇;

4)將視圖CS_Viewscore列的權限授予用戶李勇

use School

go

grant update(score)

on CS_View

to 李勇;

5)以用戶李勇登錄,然後新建查詢對CS_View進行查詢

use School

go

select *

from CS_View;

、、、

(2)代碼如下:

use School

go

update CS_View

set score=90

where no=500024940

select *

from CS_View;

三、實驗內容 2

1. 問題描述

2. 數據庫設計

如實驗內容1

3. 程序實現與測試

(1)代碼及步驟如下:

1)創建用戶王二

exec sp_addlogin '王二','654321'

use School

go

exec sp_grantdbaccess'王二';

2)創建視圖,並將元組放入

use School

go

create view grade2000

as

select *

from STUDENTS

where grade='2000'

(2)代碼如下

use School

go

grant select

on grade2000

to 王二;

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