数据库----实验3 视图机制在自主存取控制上的应用

我从前最怕旁人火眼金睛,如今,倒是盼着有人能够洞幽烛远。如此,就能赠我一点欢喜。

一、实验目的

         通过实验加深对数据库安全性的理解,熟悉视图机制在自主存取控制上的应用。

二、实验内容 1

1. 问题描述

数据库----实验3 视图机制在自主存取控制上的应用_第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'李勇';

数据库----实验3 视图机制在自主存取控制上的应用_第2张图片

2)在CHOICES表上创建CS_View视图

go

create view CS_View

as

select *

from CHOICES

where cid='10010';

数据库----实验3 视图机制在自主存取控制上的应用_第3张图片

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;

数据库----实验3 视图机制在自主存取控制上的应用_第4张图片、、、数据库----实验3 视图机制在自主存取控制上的应用_第5张图片

(2)代码如下:

use School

go

update CS_View

set score=90

where no=500024940

select *

from CS_View;

数据库----实验3 视图机制在自主存取控制上的应用_第6张图片

三、实验内容 2

1. 问题描述

2. 数据库设计

如实验内容1

3. 程序实现与测试

(1)代码及步骤如下:

1)创建用户王二

exec sp_addlogin '王二','654321'

use School

go

exec sp_grantdbaccess'王二';

数据库----实验3 视图机制在自主存取控制上的应用_第7张图片

2)创建视图,并将元组放入

use School

go

create view grade2000

as

select *

from STUDENTS

where grade='2000'

数据库----实验3 视图机制在自主存取控制上的应用_第8张图片

(2)代码如下

use School

go

grant select

on grade2000

to 王二;

你可能感兴趣的:(数据库)