- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四 视图与数据控制实验
一、实验目的
1、掌握SQL Server查询分析器的使用方法,加深对SQL查询语句的理解。
2、掌握用查询分析器和视图创建向导的方法创建视图。
3、学会使用SQL数据控制语句来进行授权控制和权限回收。
二、实验内容
基于实验一建立的“图书读者数据库”(Book_Reader_DB)和实验二输入的部分虚拟数据,在SQL Server 2008查询分析器的Transact-SQL语句输入区输入Transact-SQL语句,然后点击“查询”菜单中的“执行”菜单项(或用F5快捷键),执行输入区的Transact-SQL语句。具体实验内容如下:
1、视图定义与查询实验
① 在“图书读者数据库”(Book_Reader_DB)中,创建视图View1和View2。其中View1包括书号、书名、定价、数量等属性。View2包括读者号、读者姓名、单位、电话、书号、书名、借阅日期、应归还日期、实际还书日期和过期天数等属性,其条件是所有借书已过期的读者和借书情况(假定借阅期为60天);
② 根据上述定义的视图,在查询分析器中用语句完成如下查询:
A:通过视图View1查询书库中藏书的情况;
B:通过视图View2查询借书过期的读者和借书情况及罚款金额(假定超期罚款标准为1元/天);
2、数据控制实验
① 假定系统有U1、U2、U3 、U4、U5、U6六个登录用户,试将查询图书表的权限由管理员授权给U1, 以U1用户的身份重新登录系统后,再把权限授予给U2;
② 系统管理员把插入数据给借阅表的权限授予给U3;
③ 系统管理员把添加图书数据的权限授予给U4;
④ 系统管理员把修改读者数据信息的权限授予给U5;
⑤ 将U1访问图书表的权限收回;
上述每项实验内容相应的实验步骤必须进行详细的记录,并将其整理后写在实验报告中。
三、实验环境与实验准备工作
1、
create view view1
as
select bno,bname,price,num
from Book
select * from view1
2、
drop view view2
create view view2
as
select Reader.rno,rname,department,telephone,Book.bno,bname,bdata,bdata+20 应归还日期,back_date,DATEDIFF(DAY,bdata+20,back_date) 过期天数
from Book,Borrow,Reader
where Book.bno=Borrow.bno and Borrow.rno=Reader.rno
select rno,rname,bno,bname,过期天数*1 罚款金额
from view2
where 过期天数0
3、
/*在超级管理员下写这代码*/
/*创建U1用户并查询图书表的权限由管理员授权给U1*/
use Book_Reader_DB2;
create login U1 with password=123;
create user U1 for login U1;
use Book_Reader_DB2;
go
grant insert
on Book
to U1
with grant option
/*在超级管理员下写这代码*/
use Book_Reader_DB2;
create login U2 with password=123;
create user U2 for login U2;
/*在u1用户登录后写这个授权代码*/
grant insert
on Book
to U2
/*在超级管理员下写这代码*/
use Book_Reader_DB2;
create login U3 with password=123;
create user U3 for login U3;
use Book_Reader_DB2;
go
grant insert
on Borrow
to U3
/*用U3,密码123登陆查看功能*/
/*在超级管理员下写这代码*/
use Book_Reader_DB2;
create login U4 with password=123;
create user U4 for login U4;
use Book_Reader_DB2;
go
grant insert
on Book
to U4
/*用U4,密码123登陆查看功能*/
/*在超级管理员下写这代码*/
use Book_Reader_DB2;
create login U5 with password=123;
create user U5 for login U5;
use Book_Reader_DB2;
go
文档评论(0)