数据库系统概论 实验报告答案 实验七:视图、索引及数据安全

实验七:视图、索引及数据安全

一、实验目的

1.    掌握视图特点;

2.    掌握使用SQL Server 2008创建及管理视图;

3.    掌握在对象资源管理器和T-SQL语句中创建和管理索引;

二、实验学时

2学时

三、实验要求

1.    掌握使用界面方式和命令方式创建及管理视图;

2.    利用对象资源管理器和T-SQL语句创建、修改、删除和使用索引。

3.    完成实验报告。

四、实验内容

1.以实验数据库为基础数据,利用对象资源管理器创建以下视图:

 1)创建所有学生学号、姓名及年龄的信息视图stu_info

 2)创建CS系学生基本信息视图stu_cs

 3)创建选修课成绩在80分以上的学生的信息视图stu_80,包括学生基本情况及成绩。

2. 以实验数据库为基础数据,请使用T-SQL语句完成以下内容,并将SQL语句写在实验报告册中:

1)    创建CS_age视图,包括CS系各学生的学号、姓名及年龄,要求进行修改和插入操作时仍需保证该视图只有CS系的学生;

create viewCS_age

as

selectsno,sname,sage

fromXSKC.student

wheresdept='CS'

WITH CHECK OPTION;

2)    创建CS_age_20视图,包括CS系学生年龄在20岁以上的基本信息;并保证对视图文本的修改都要符合年龄大于20这个条件。

create viewCS_age_20

as

select*

fromXSKC.student

wheresdept='CS'andsage>'20'

WITH CHECK OPTION;

3)    创建一个视图stu_cg,用于查看学生学号、姓名、课程和成绩信息,并用WITH ENCRYPTION加密。

create viewstu_cg 

with encryption 

as 

selectstudent.sno,sname,cname,grade 

fromXSKC.student,XSKC.sc,XSKC.course 

wherestudent.sno=sc.snoandsc.cno=course.cno;

4)    向CS系学生视图stu_CS中插入一个新的学生记录,学号为200515026,姓名为“赵红平”,性别为“男”,年龄21岁;

insert

intostu_cs

values('200515026','赵红平','男','21','CS');

5)    利用视图stu_CS修改学号为200515001的学生姓名为“赵青青”;

updatestu_cs

setsname='赵青青'

wheresno='200515001';

6)    利用视图stu_CS删除CS系学号为200515003的记录;

delete

fromstu_cs

wheresno='200515003';

7)    删除视图CS_age_20;

drop viewCS_age_20;

3.在对象资源管理器中,利用图形化的方法创建和管理下列索引:

1)    对数据表student中字段sname建立非聚集索引idx_name;

2)    针对student表的sno和sname列创建复合索引idx_no_name;

3)    删除数据表student的索引idx_name;

4. 利用T-SQL语句创建和管理以下索引:

1)    对course表的cname列创建非聚集索引idx_cname;

create

indexidx_cname

onXSKC.course(cname);

2)    对sc表的sno和cno列创建复合索引idx_sno_cno;

create

indexidx_sno_cno 

onXSKC.sc(sno,cno)

3)    利用系统存储过程sp_helpidex查看索引idx_cname信息;

cr'XSKC.course'

4)    删除索引idx_cname。

drop indexXSKC.course.idx_cname;

5. 数据安全性。以系统管理员身份登录到SQL Server服务器,在SQL Server2008界面中实现以下操作,并写出相应程序代码。

1)    在当前计算机中增加一个用户zhang,密码为secret。使此用户通过windows模式下登录SQL Server服务器,登录名为zhang;

2)    新建以混合模式登录SQL Server服务器的用户登录名分别为stu1、stu2和stu3登录密码为secret,默认登录数据库为stu;将登录帐号stu1、stu2和stu3加入到服务器角色sysadmin中;

3)    删除服务器角色sysadmin的成员stu2和stu3;

4)    在数据库stu中创建用户zhang,登录帐号为zhang;

  create userzhangfor loginzhang 

5)    在数据库stu中创建用户stu1、stu2和stu3,登录帐号为stu1、stu2和stu3;

  create userstu1for loginstu1

  create userstu2for loginstu2

  create userstu3for loginstu3

6)    给数据库用户zhang赋予创建数据表的权限;

grant create table 

tozhang 

7)    给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;

grant insert,update,delete 

onXSKC.sc 

tostu1

8)    给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;

grant allprivileges 

onXSKC.student

tostu2,stu3 

with grant option

grant allprivileges 

onXSKC.course 

tostu2,stu3 

with grant option

grant select 

onXSKC.sc 

tostu2,stu3 

with grant option

9)    回收数据库用户stu2对student表和course表的删除操作的权限;

revoke delete 

onXSKC.student 

fromstu2 

cascade

revoke delete 

onXSKC.course

fromstu2 

cascade


版权声明:本文为qq_54499870原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。