实验三更新视图权限管理229274.docx

上传人:b****5 文档编号:5143382 上传时间:2022-12-13 格式:DOCX 页数:15 大小:290.09KB
下载 相关 举报
实验三更新视图权限管理229274.docx_第1页
第1页 / 共15页
实验三更新视图权限管理229274.docx_第2页
第2页 / 共15页
实验三更新视图权限管理229274.docx_第3页
第3页 / 共15页
实验三更新视图权限管理229274.docx_第4页
第4页 / 共15页
实验三更新视图权限管理229274.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验三更新视图权限管理229274.docx

《实验三更新视图权限管理229274.docx》由会员分享,可在线阅读,更多相关《实验三更新视图权限管理229274.docx(15页珍藏版)》请在冰豆网上搜索。

实验三更新视图权限管理229274.docx

实验三更新视图权限管理229274

《数据库系统原理》实验三

数据更新、视图、权限管理

实验3.1数据更新

1实验内容

(1)使用INSERTINTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。

(2)使用SELECTINTO语句,产生一个新表并插入数据。

(3)使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:

修改某个元组的值;修改多个元组的值;带子查询的修改语句。

(4)使用DELETE语句删除数据:

删除某一个元组的值;删除多个元组的值;带子查询的删除语句。

2实验步骤

在数据库School上按下列要求进行数据更新

可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库

UseSchool

go

(1)使用SQL语句向STUDENTS表中插入元组(编号:

12345678名字:

LiMingEMAIL:

LM@年级:

2002)。

insertintoSTUDENTS(sid,sname,email,grade)

values('12345678','LiMing','LM@',2002);

select*fromSTUDENTS;

(2)对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。

使用SELECTINTO和INSERTINTO两种方法实现。

createtableSnumanMscore(

cidchar(10),

numint,

maxscoreint);

insertintoSnumanMscore(cid,num,maxscore)

selectcid,COUNT(*),MAX(score)fromCHOICESgroupbycid;

select*fromSnumanMscore;

selectcid,COUNT(*)asnum,MAX(score)asmaxscoreintoSnumandMscore2

fromCHOICESgroupbycid;

select*fromSnumandMscore2;

(3)在STUDENTS表中使用SQL语句将姓名为LiMing.的学生的EMAIL改为LM@。

updateSTUDENTSsetemail='LM@'

wheresname='LiMing';

select*fromSTUDENTS;

(4)在TEACHERS表中使用SQL语句将所有教师的工资翻倍。

updateTEACHERSsetsalary=salary*2;

select*fromTEACHERS;

(5)将姓名为waqcj的学生的课程C++的成绩加10分。

selectsidfromSTUDENTSwheresname='waqcj'

selectcidfromCOURSESwherecname='C++'

updateCHOICESsetscore=score+10

wheresidin(selectsidfromSTUDENTSwheresname='waqcj')

andcidin(selectcidfromCOURSESwherecname='C++');

select*fromCHOICESwheresid='800005753'andcid='10005’

(6)在STUDENTS表中使用SQL语句删除姓名为LiMing的学生信息。

deletefromSTUDENTSwheresname='Liming';

select*fromSTUDENTS;

(7)删除所有选修课程C的选课记录。

select*fromCHOICES

wherecidin(selectcidfromCOURSESwherecname='C');

deletefromCHOICES

wherecidin(selectcidfromCOURSESwherecname='C');

(8)对COURSES表做删去时间>80的元组的操作,讨论该删除操作所受到的约束。

deletefromCOURSES

wherehour>80;

select*fromCOURSES;

实验3.2视图操作

1实验内容

(1)使用CREATEVIEW命令建立视图。

(2)对视图进行查询

(3)更新视图

(4)使用DROPVIEW命令删除视图。

2实验步骤

在数据库School上按下列要求进行视图的有关操作

可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库

UseSchool

go

(1)建立薪水大于3000的教师的视图t_view,并要求进行修改和插入操作时仍需保证该视图只有薪水大于3000的教师信息。

useSchool

go

createviewt_view

as

select*fromTEACHERSwheresalary>3000

withcheckoption;

go

select*fromt_view;

(2)在视图t_view中查询邮件地址为xibl@izd.edu的教师的相关信息。

select*fromt_viewwhereemail='xibl@izd.edu';

(3)向视图t_view中插入一个新的教师记录,其中教师编号为199999998,姓名为abc,邮件地址为abc@,薪水为5000。

insertintot_view(tid,tname,email,salary)

values('199999998','abc','abc@',5000);

select*fromt_view;

(4)在视图t_view中将编号为200010493的教师的薪水改为6000。

updatet_viewsetsalary=6000

wheretid='200010493';

(5)删除视图t_view。

dropviewt_view;

实验3.3用户标识与鉴别

1实验内容

由系统提供一定的方式让用户标识自己的名字和身份。

2实验步骤

(1)在SSMS中,设置SQLServer的安全认证模式。

(2)在SSMS中建立一个名为“张三”的登陆用户、School数据库用户。

最后点击确定即可:

(3)在SSMS中取消“张三”这个用户。

点击登录名,找到张三,删除即可。

(4)学习【参考命令】中的几个命令,了解利用命令实现上述步骤。

A、建立一个名为“张三”的登陆用户、School数据库用户。

execsp_addlogin'张三','123456','School'

execsp_adduser'张三'

B、取消“张三”这个用户。

execsp_dropuser'张三'

execsp_droplogin'张三'

实验3.4自主存取控制

1实验内容

定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。

2实验步骤

(1)在SSMS中建立一个名为“张三”的登陆用户、School数据库的用户。

参见实验3.3的试验步骤

(2)

execsp_addlogin'张三','123456','School'

execsp_adduser'张三'

(2)使用查询验证“张三”这个用户名是否具有对学生表的SELECT权限。

selectSYSTEM_USER

executeasUSER='张三'

selectSYSTEM_USER

select*fromSTUDENTS;

(3)将School数据库的操作权限赋予数据库用户张三。

revertselectSYSTEM_USER

grantallprivilegesonSTUDENTSto张三

grantallprivilegesonCHOICESto张三

grantallprivilegesonCOURSESto张三

grantallprivilegesonTEACHERSto张三

executeasUSER='张三'

selectSYSTEM_USER

select*fromSTUDENTS;

实验3.5视图机制在自主存取控制上的应用

1实验内容

在视图机制上定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。

2实验步骤

(1)在数据库School上创建用户“张三”,具体操作参见实验3.3中的试验步骤

(2)。

execsp_addlogin'张三','123456','School'

execsp_adduser'张三'

(2)新建查询,用管理员身份登陆数据库。

在choices表上创建视图ch_view,并显示其内容(选课课程号为10005)。

printuser

createviewch_view

as

select*fromCHOICES

wherecid='10005';

go

select*fromch_view;

(3)在视图ch_view上给用户张三赋予INSERT的权限。

grantinsertonch_viewto张三

(4)将视图ch_view上score列的权限赋予用户张三。

grantallonch_view(score)to张三

executeasuser='张三'

printuser

selectscorefromch_view;

(5)以用户张三登陆查询分析器,对ch_view进行查询操作。

revertselectSYSTEM_USER

printuser

grantallonch_viewto张三

executeasuser='张三'

printuser

select*fromch_view

(6)以用户张三登陆查询分析器,对no为500127998的学生的成绩进行修改,改为90分。

selectscorefromch_viewwhereno=500127998

updatech_viewsetscore=90whereno=500127998

selectscorefromch_viewwhereno=500127998

(7)收回对用户张三对视图ch_view查询权限的授权

revertselectSYSTEM_USER

revokeselectonch_viewfrom张三

executeasuser='张三'

select*fromch_view

printuser

select*fromch_view

实验总结:

在此次实验中我巩固了更新数据库,建立视图的各种命令,还学习了权限管理,并对此有了一定的理解。

虽然在此过程中碰到了一些障碍,但最后都解决了。

我觉得自己在实验中学到了许多东西。

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

当前位置:首页 > 高等教育 > 艺术

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

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