DB3302553李文想.docx

上传人:b****8 文档编号:10958744 上传时间:2023-02-24 格式:DOCX 页数:13 大小:315.98KB
下载 相关 举报
DB3302553李文想.docx_第1页
第1页 / 共13页
DB3302553李文想.docx_第2页
第2页 / 共13页
DB3302553李文想.docx_第3页
第3页 / 共13页
DB3302553李文想.docx_第4页
第4页 / 共13页
DB3302553李文想.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

DB3302553李文想.docx

《DB3302553李文想.docx》由会员分享,可在线阅读,更多相关《DB3302553李文想.docx(13页珍藏版)》请在冰豆网上搜索。

DB3302553李文想.docx

DB3302553李文想

《数据库系统概论》实验报告

题目:

实验3:

视图操作和安全性控制

姓名

 班级

学号

 日期

李文想

10010905

2009302553

2011-10-13

目的和要求

1.掌握使用图形用户界面和SQL语言创建,操作和删除视图的方法。

2.掌握SQLServer中的安全性相关的登录名,角色以及用户的创建以及使用方法。

3.学会使用T-SQL语句对数据库和表操作的灵活控制功能。

实验准备

1.了解与视图相关的各种SQL语句。

2.了解登录名,角色以及用户的创建以及使用方法。

3.了解T-SQL语句在对数据库和表的控制权限相关命令(GRANT/REVOKE)的用法。

实验内容和步骤结果

1.在Student数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。

(5分)

具体步骤:

在ManagementStudio的对象资源管理器中,展开student数据库,单击“视图”,右击,从弹出的快捷菜单中选择“新建视图”菜单项,出现如图3-10所示的新建视图对话框,在该对话框中,通过选定一个或者多个表,指定字段,设定连接或限制条件,最后单击保存工具按钮,给视图取个名字,就完成了视图的创建,如图3-11所示。

图3-10设计视图前选定表

图3-11交互式设计视图

运行结果:

2.用两种不同的SQL语句创建课本128页第11题中要求的视图(视图名:

V_SPJ)(6分,每种方法3分)。

SQL源码:

createviewv_spjasselectsno,pno,qtyfromspj,jwherespj.jno=j.jnoandj.jname='三建'

OR

createviewvv_spjasselectsno,pno,qtyfromspjwherejnoin(selectjnofromjwherej.jname='三建')

运行结果:

3.用SQL语句完成课本128页第11题中对视图V_SPJ的查询(4分,每小题2分)。

(1)找出三建工程项目使用的各种零件代码及其数量;

SQL代码:

select*fromv_spj

运行结果:

(2)找出供应商s1的供应情况。

SQL代码:

selectpno,qtyfromv_spjwheresno='S1';

运行结果:

4.用T-SQL语句操作视图的数据。

(15分,每题5分)

(1)给视图V_SPJ中增加一条数据(基本表中有插入的数据即可);

SQL代码:

insertintov_spj(sno,pno,qty)values('S3','P2',100);

运行结果:

由于基本表中插入的数据JNO是NULL,所以视图中看不到新插入的数据

(2)修改视图V_SPJ中的任意一条数据的供应数量;

SQL代码:

updatev_spjsetqty=200wheresno='S3';

运行结果:

(3)删除视图V_SPJ中的任意一条数据。

SQL代码:

deletefromvv_spjwheresno='S5'andpno='P3';

运行结果:

5.在图形用户界面中创建新登录名以及用户。

(20分,每题10分)

(1)对于数据库company创建P148页第8题中所需要用到的各个用户以及相关的关的登录名。

(假定有数据库company,库中有两个表e(职工表)和d(部门表));

步骤如下:

①启动ManagementStudio,分别展开“服务器”、“数据库”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已用用户;②右击“用户”文件夹,选择“新建数据库用户”,弹出“数据库用户-新建”对话框;③输入要创建的数据库用户的名字,然后在“登录名”对应的文本框中输入相应的登录名,或者单击“浏览”按钮,在系统中选择相应的登录名;④单击“确定”按钮,将新创建的数据库用户添加到数据中。

图3-12所示创建登录名loginname2

图3-13所示创建company数据库李勇用户

(2)用图形用户界面完成以下的权限赋予:

(a)用户王明对两个表有Select和Insert的权力;

图3-14所示授予用户王明对d表有Select和Insert的权力

 

图3-15所示授予用户王明对e表有Select和Insert的权力

(b)用户李勇对职工表具有Select权力,对工资字段具有更新权力

 

T图3-15

 

 

图3-16

6.用T-SQL语句授权和收回权限并加以验证。

(50分,每题5分)

(1)用户李勇对两个表有insert和delete权力;

SQL源码:

grantinsert,deleteoneto李勇

grantinsert,deleteondto李勇

(2)每个职工只对自己的记录有select权力;

SQL源码:

createviewv_employeeasselect*fromewhereename=CURRENT_USER

grantselectonv_employeetopublic

(3)用户刘星对职工表有select权力,对工资字段具有更新权力;

SQL源码:

grantselect,update(esalary)oneto刘星

(4)用户周平具有对两个所有权力(读、插、改、删数据),并具有给其他用户授权的权力;

SQL源码:

grantallprivilegesoneto周平withgrantoption

(5)用户杨兰具有从每个部门职工中select最高工资,最低工资,平均工资的权力,他不能查看每个人的工资;

SQL源码:

createviewv_salaryasselectedepno,max(esalary)maxsal,min(esalary)minsal,avg(esalary)avgsalfromegroupbyedepno

grantselectonv_salaryto杨兰

(6)撤销每个职工对自己记录的select权力;

SQL源码:

createviewv_employeeasselect*fromewhereename=CURRENT_USER

revokeselectonv_employeetopublic

(7)撤销用户刘星对职工表有select权力,对工资字段具有更新权力;

SQL源码:

revokeselect,update(esalary)onefrom刘星

(8)撤销用户周平具有对两个所有权力(读、插、改、删数据),并具有给其他用户授权的权力;

SQL源码:

revokeallprivilegesonefrom周平cascade

(9)撤销用户杨兰具有从每个部门职工中select最高工资,最低工资,平均工资的权力,他不能查看每个人的工资;

SQL源码:

createviewv_salaryasselectedepno,max(esalary)maxsal,min(esalary)minsal,avg(esalary)avgsalfromegroupbyedepno

revokeselectonv_salaryfrom杨兰

dropviewv_salary

实验中出现的问题以及解决方案

(1)sbirth(data)>=1986-01-01&&sbirth<=1986-12-12将student表的学生的出生日期限定在1986年;

(2)创建新的用户时,必须先创建一个登录名与之对应,并且两者是一一对应的关系;

例,:

compant数据库下创建新的用户杨兰,首先在“安全性”目录下创建新的登陆名,如loginname5,然后才能在company数据库下的“用户”目录下添加新的用户;

(3)实验室环境下,混合模式不能连接成功,此问题实验过程中未能解决;

实验过程中的一些感受:

本次试验的最大体会就是深刻体会到视图机制对RDBMS的重要意义,通过定义视图,使得数据库看起来结构简单、清晰,并且可以简化用户的数据查询操作;再者,有了视图机制,就可以在设计数据应用系统时,对于不同的用户定义不同的视图,是机密数据不出现在不应该看到这些数据的用户视图上,即是视图机制自动提供了对机密数据的安全保护功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1