数据库第三次实验报告Word格式文档下载.docx

上传人:b****6 文档编号:17301122 上传时间:2022-12-01 格式:DOCX 页数:13 大小:215.86KB
下载 相关 举报
数据库第三次实验报告Word格式文档下载.docx_第1页
第1页 / 共13页
数据库第三次实验报告Word格式文档下载.docx_第2页
第2页 / 共13页
数据库第三次实验报告Word格式文档下载.docx_第3页
第3页 / 共13页
数据库第三次实验报告Word格式文档下载.docx_第4页
第4页 / 共13页
数据库第三次实验报告Word格式文档下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库第三次实验报告Word格式文档下载.docx

《数据库第三次实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库第三次实验报告Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。

数据库第三次实验报告Word格式文档下载.docx

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

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

实验准备

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

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

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

实验内容和步骤结果

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

(5分)

具体步骤:

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

设计视图前选定表

选中选修数据库并且是1986年生的学生

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

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

SQL源码:

createviewV_SPJasselectSNO,PNO,QTY

from供应情况表SPJ,工程项目表J

where供应情况表SPJ.JNO=工程项目表J.JNO

and工程项目表J.JNAME='

三建'

第二种

from供应情况表SPJ

whereJNOin(selectJNOfrom工程项目表Jwhere

工程项目表J.JNAME='

运行结果:

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

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

SQL代码以及运行结果

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

SQL代码以及运行结果:

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

(15分,每题5分)

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

SQL代码:

insertintoV_SPJ(sno,pno,qty)values('

s3'

'

p2'

100)

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

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

updateV_SPJsetqty=400wheresno='

s2'

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

deletefromV_SPJwheresno='

orsno='

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

(20分,每题10分)

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

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

步骤如下:

①启动ManagementStudio,分别展开“服务器”、“数据库”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已用用户;

②右击“用户”文件夹,选择“新建数据库用户”,弹出“数据库用户-新建”对话框;

③输入要创建的数据库用户的名字,然后在“登录名”对应的文本框中输入相应的登录名,或者单击“浏览”按钮,在系统中选择相应的登录名;

④单击“确定”按钮,将新创建的数据库用户添加到数据中。

所示创建登录名username1

创建company数据库刘星用户

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

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

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

所示授予用户王明对e表有Select和Insert的权力图和上图类似。

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

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

(50分,每题5分)

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

grantinsert,delete

one

to李勇

ond

E表的图类似上图,为节省空间,忽略此图。

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

createviewV_company

asselect*frome

where姓名=CURRENT_USER

grantselectonV_companytopublic

注意以上两行必须分开运行,因为create和grant语句不能一起执行。

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

grantselect,update(工资)

to刘星

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

grantall

to周平

withgrantoption

虽然已经提示了all应用不是很好,但是还没有找到解决方法。

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

createviewV_salary

as

select职工号,MAX(工资)maxsal,min(工资)minsal,avg(工资)avgsalfromegroupby职工号

grantselectonV_salaryto杨兰

同样以上两行代码必须分开运行。

理由同上

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

revokeselectonV_companytopublic

dropV_company

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

revokeselect,update(工资)

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

revokeall

cascade

cascade对应的是withgrantoption,只有这样才可以删除周平的对应关系。

图形类似刘星的图形,因为什么数据都没有,所以此图省略。

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

revokeselectonV_salaryto杨兰

dropV_salary

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

(1)第一题,在约束出生的年份的时候,只有或的关系,并没有与之对应<

=1986-12-31&

&

>

=1986-1-1所以只能先创建了一个或关系。

解决方法:

之后,发现代码中出现了OR的名词,所以把这个改为了AND,之后图形界面操作自动更正为了有两个sbirth选项,之后意识到这样就可以表示与的关系了。

(2)创建用户的时候,必须要有与之对应的登录名。

并且一个登录名只能对应一个用户。

(3)视图的操作太糟糕了,因为视图实际上只是一个虚表,不直接依赖于表中的数据,所以只能删除,不能添加(虽然添加数据的时候提示有一行受到了影响,但是等到删除的时候,却不提示此行被删除,而且视图上也不显示)。

所以当不小心误删的时候,只能去重新创建视图。

实验过程中的一些感受:

本次实验中对数据库的视图有了了解,虽然不是太懂,但是可以针对视图进行授权,从而解决了很多的安全问题。

但是对视图的数据操作不是一个明知的选择。

同时发现图形操作和SQL代码结合起来可以对问题的解决提供很大的帮助。

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

当前位置:首页 > 高中教育 > 初中教育

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

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