《数据库实验四(共10页).doc》由会员分享,可在线阅读,更多相关《数据库实验四(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上西南石油大学实验报告课程名称:数据库原理插入你的照片实验项目名称:实验项目4 数据库安全管理专业年级班级、姓名、学号:电子邮件地址:实验所用机器名:实验时间地点:2015.12.18 明理楼实验指导教师:孙瑜成绩批改人批改日期注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。一、实验课时:2二、实验目的(1) 掌握使用T-SQL语句创建登录帐户的方法。(2) 掌握使用T-SQL语句创建数据库用户的方法。(3) 掌握使用T-SQL语句创建数据库角色的方法。(4) 掌握使用T-SQL语句管理数据库用户权限方法。三、实验要求(1) 使用SQL
2、Server 2008查询分析器。(2) 严格依照操作步骤进行。四、实验环境(1) PC机。(2) SQL Server 2008。五、实验内容及步骤注意事项:(1) 首先在C盘根目录创建文件夹Bluesky,执行脚本文件“PracticePre-第11章安全管理.sql”,创建数据库BlueSkyDB和表;(2) 如何建立“数据库引擎查询”;(3) 使用“select user_name()”可查询当前登录账号在当前数据库中的用户名。步骤1 使用Transact-SQL创建三个SQL Server登录账户TUser1、TUser2、TUser3,初始密码均为“”。-SACREATE LOGI
3、N TUser1 WITH PASSWORD = CREATE LOGIN TUser2 WITH PASSWORD = CREATE LOGIN TUser3 WITH PASSWORD = 步骤2 使用TUser1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?不可以选中BlueSkyDB数据库。因为此时sa还没有赋予TUser1选中BlueSkyDB数据库的权限,TUser1还不是BlueSkyDB数据库的用户。步骤3 使用Transact-SQL将SQL Server登录账户TUser1、TUser2、TUser3映射为数据库B
4、lueSkyDB的用户,用户名同登录名。CREATE USER TUser1CREATE USER TUser2CREATE USER TUser3步骤4 再次使用TUser1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中BlueSkyDB数据库?为什么?可以选中BlueSkyDB数据库。此时sa已经赋予了TUser1访问BlueSkyDB数据库的权利了。步骤5 用TUser1用户在BlueSkyDB数据库中执行下述语句,能否成功?为什么?SELECT * FROM BOOKS;不能成功。其实TUser1只是具有访问数据库的权限,还没有拥有操作数据库的权限。步骤6
5、 授予TUser1具有对BOOKS表的查询权限,授予TUser2具有对CUSTOMERS表的插入权限。GRANT SELECT ON BOOKS TO TUser1GRANT SELECT ON CUSTOMERS TO TUser2步骤7 用TUser2建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?不能成功。因为sa并没赋予TUser2对于CUSTOMERS表进行插入的权限。INSERT INTO CUSTOMERS VALUES(张三,zhang,); (注意:CUSTOMERS表中的customerID列为自增列)再执行下述语句,能否成功?为什么?SELECT * FROM
6、 CUSTOMERS;成功了。因为sa赋予了TUser2对于CUSTOMERS表进行查询的权限。步骤8 在TUser1用户建立的数据库引擎查询中,再次执行下述语句:SELECT * FROM BOOKS;成功了。因为sa赋予了TUser1查询BOOKS表的权限。这次能否成功?但如果执行下述语句:INSERT INTO CUSTOMERS VALUES(李四,li,);能否成功?为什么?不能成功。因为sa没有赋予User1插入数据到BOOKS表的权限。步骤9 授予TUser3具有在BlueSkyDB数据库中的建表权限。GRANT CREATE TABLE TO TUser3步骤10 使用Tran
7、sact-SQL在数据库BlueSkyDB中创建一个角色TRole1,并使用Transact-SQL将对BlueSkyDB数据库中Books表的增、删、改、查权限授予角色TRole1。CREATE ROLE TRole1GRANT SELECT,INSERT,DELETE,UPDATE ON Books TO TRole1步骤11 新建立一个SQL SERVER身份验证模式的登录名:pub_user,并让该登录名成为BlueSkyDB数据库中的合法用户(非常重要,否则后面无法将其加入TRole1角色)CREATE LOGIN pub_user WITH PASSWORD = CREATE US
8、ER pub_user步骤12 用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?SELECT * FROM BOOKS;不能成功。此时pub_user并没有被sa赋予对books表的查询权限。步骤13 将pub_user用户添加到TRole1角色中。EXEC sp_addrolemember TRole1, pub_user步骤14 在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?SELECT * FROM BOOKS;成功了。因为把pub_user加入到角色TRole1里,他拥有了TRole1的所有操作权限。步骤15 使用Trans
9、act-SQL将对BlueSkyDB数据库中Books表的删除、更新和查询的权限从角色TRole1处回收回来。EXEC sp_droprolemember TRole1, pub_user步骤16在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?不能成功。因为pub_user被加入到TRole1角色里,他们相当于捆绑在一起。但TRole1失去权利时,pub_user也失去相应的权利。SELECT * FROM BOOKS;六、收获,体会及问题(请详细书写,写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实
10、验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)本次实验主要是通过SQL的数据库控制语言来实现用户对数据库的操作权限的控制。用户的操作权限设置有三层,第一层是否具有登录数据库服务器的权限;第二层是是否具有访问数据库的权限。第三层是是否具有操作数据库数据的权限。每一层都有其固定的语句来设置。并且是层层递进。学会了如何创建一个角色,并且将为这个角色授予相关的权限,当有新的用户被添加到这个角色的时候,这个用户就会具备这个角色的所有权限。但角色的权限被删除时,在角色里的用户也会失去角色所拥有的权限。不过自己也是照着PPT做的,还必须要加强联系,巩固记忆。专心-专注-专业