1、数据库系统原理实验报告(实验名称 : SQL 安全性 )专 业 软件工程 班 级 软工 0804 学 号 3080103739 学生姓名 朱晓伟 指导老师 林怀忠 浙江大学2010 年 4 月 2 日- 1 -一、实验目的 1. 熟悉通过 SQL 进行数据完整性控制的方法。二、实验内容:1. 建立表,考察表的生成者拥有该表的哪些权限。2. 使用 SQL 的 grant 和 revoke 命令对其他用户进行授权和权力回收,考察相应的作用。3. 建立视图,并把该视图的查询权限授予其他用户,考察通过视图进行权限控制的作用。4. 完成实验报告。三、实验环境 1. 数据库管理系统:SQL Server
2、2000四、程序源码与运行结果 1. 建立表,考察表的生成者拥有该表的哪些权限。(一) 、先建立一个表 book。(二) 、然后打开企业管理器查看表 book 的生成者所拥有的权限,如图- 2 -由于表 book 的创建者是 user636,所以结论是:一个创建了新关系的用户将自动被授予该关系上的所有权限。2. 使用 SQL 的 grant 和 revoke 命令对其他用户进行授权和权力回收,考察相应的作用。(1)授予权利,如图程序代码:grant select on book to user637,user633grant update(bno) on book to user637,use
3、r639查看授予结果,如图- 3 -结果:相应的用户得到了相应的权限,其中 update 栏中在方框外,说明该用户只拥有修改表部分属性的权限。(2)收回权利,如图- 4 -程序代码:revoke select on book from user637,user633revoke update(bno) on book from user637,user639查看收回结果,如图- 5 -结果:相应的用户的相应权利被收回。3. 建立视图,并把该视图的查询权限授予其他用户,考察通过视图进行权限控制的作用。(1)建立视图 abc,如图- 6 -程序代码:create view abc(x,y,z) a
4、sselect bno,author,pricefrom book(2)把视图 abc 的查询权限授予其他用户,如图- 7 -程序代码:grant select on abc to user639,user635查看结果,如图- 8 -结论:相应的用户在视图 abc 上获得 select 的权利。五、实验总结1. 用户名 public 指系统所有当前用户和将来的用户。因此,授予 public 的权限隐含着授予所有当前用户和将来的用户。2. 一个创建了新关系的用户将自动被授予该关系上的所有权限。3. 在 Sql Server 2000 中的视图是以文本的形式存储在数据库中,如图- 9 -若视图的名称为某个表的名称,比放说 book,那么语句“grant select on book to user639,user635”会产生错误,如图