数据库----实验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 王二;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值