数据库实验四文档格式.docx
《数据库实验四文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验四文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
实验指导教师:
瑜
成绩
批改人
批改日期
注意:
在粘贴截图时请保存窗口完整标题,但只需保存关键界面,多余的空白界面请删除。
一、实验课时:
2
二、实验目的
(1)掌握使用T-SQL语句创立登录的方法。
(2)掌握使用T-SQL语句创立数据库用户的方法。
(3)掌握使用T-SQL语句创立数据库角色的方法。
(4)掌握使用T-SQL语句管理数据库用户权限方法。
三、实验要求
(1)使用SQLServer2021查询分析器。
(2)严格依照操作步骤进展。
四、实验环境
(1)PC机。
(2)SQLServer2021。
五、实验容及步骤
本卷须知:
(1)首先在C盘根目录创立文件夹Bluesky,执行脚本文件“PracticePre-第11章平安管理.sql〞,创立数据库BlueSkyDB和表;
(2)如何建立“数据库引擎查询〞;
(3)使用“selectuser_name()〞可查询当前登录账号在当前数据库中的用户名。
步骤1使用Transact-SQL创立三个SQLServer登录账户TUser1、TUser2、TUser3,初始密码均为“123456〞。
--SA
CREATELOGINTUser1
WITHPASSWORD='
123456'
CREATELOGINTUser2
CREATELOGINTUser3
步骤2使用TUser1建立一个新的数据库引擎查询,在“可用数据库〞下拉列表框中是否能看到并选中BlueSkyDB数据库?
为什么?
不可以选中BlueSkyDB数据库。
因为此时sa还没有赋予TUser1选中BlueSkyDB数据库的权限,TUser1还不是BlueSkyDB数据库的用户。
步骤3使用Transact-SQL将SQLServer登录账户TUser1、TUser2、TUser3映射为数据库BlueSkyDB的用户,用户名同登录名。
CREATEUSERTUser1
CREATEUSERTUser2
CREATEUSERTUser3
步骤4再次使用TUser1建立一个新的数据库引擎查询,这次在“可用数据库〞下拉列表框中是否能看到并选中BlueSkyDB数据库?
可以选中BlueSkyDB数据库。
此时sa已经赋予了TUser1访问BlueSkyDB数据库的权利了。
步骤5用TUser1用户在BlueSkyDB数据库中执行下述语句,能否成功?
SELECT*FROMBOOKS;
不能成功。
其实TUser1只是具有访问数据库的权限,还没有拥有操作数据库的权限。
步骤6授予TUser1具有对BOOKS表的查询权限,授予TUser2具有对CUSTOMERS表的插入权限。
GRANTSELECTONBOOKSTOTUser1
GRANTSELECTONCUSTOMERSTOTUser2
步骤7用TUser2建立一个新的数据库引擎查询,执行下述语句,能否成功?
因为sa并没赋予TUser2对于CUSTOMERS表进展插入的权限。
INSERTINTOCUSTOMERSVALUES('
三'
'
zhang126.'
);
(注意:
CUSTOMERS表中的customerID列为自增列)
再执行下述语句,能否成功?
SELECT*FROMCUSTOMERS;
成功了。
因为sa赋予了TUser2对于CUSTOMERS表进展查询的权限。
步骤8在TUser1用户建立的数据库引擎查询中,再次执行下述语句:
因为sa赋予了TUser1查询BOOKS表的权限。
这次能否成功?
但如果执行下述语句:
四'
li126.'
能否成功?
因为sa没有赋予User1插入数据到BOOKS表的权限。
步骤9授予TUser3具有在BlueSkyDB数据库中的建表权限。
GRANTCREATETABLETOTUser3
步骤10使用Transact-SQL在数据库BlueSkyDB中创立一个角色TRole1,并使用Transact-SQL将对BlueSkyDB数据库中Books表的增、删、改、查权限授予角色TRole1。
CREATEROLETRole1
GRANTSELECT,INSERT,DELETE,UPDATE
ONBooksTOTRole1
步骤11新建立一个SQLSERVER身份验证模式的登录名:
pub_user,并让该登录名成为BlueSkyDB数据库中的合法用户〔非常重要,否那么后面无法将其参加TRole1角色〕
CREATELOGINpub_user
CREATEUSERpub_user
步骤12用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?
SELECT*FROMBOOKS;
此时pub_user并没有被sa赋予对books表的查询权限。
步骤13将pub_user用户添加到TRole1角色中。
EXECsp_addrolemember'
TRole1'
'
pub_user'
步骤14在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?
因为把pub_user参加到角色TRole1里,他拥有了TRole1的所有操作权限。
步骤15使用Transact-SQL将对BlueSkyDB数据库中Books表的删除、更新和查询的权限从角色TRole1处回收回来。
EXECsp_droprolemember'
步骤16在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?
因为pub_user被参加到TRole1角色里,他们相当于捆绑在一起。
但TRole1失去权利时,pub_user也失去相应的权利。
六、收获,体会及问题
(请详细书写,写得越详细、越个性化、越真实越好,否那么我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进展了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)
本次实验主要是通过SQL的数据库控制语言来实现用户对数据库的操作权限的控制。
用户的操作权限设置有三层,第一层是否具有登录数据库效劳器的权限;
第二层是是否具有访问数据库的权限。
第三层是是否具有操作数据库数据的权限。
每一层都有其固定的语句来设置。
并且是层层递进。
学会了如何创立一个角色,并且将为这个角色授予相关的权限,当有新的用户被添加到这个角色的时候,这个用户就会具备这个角色的所有权限。
但角色的权限被删除时,在角色里的用户也会失去角色所拥有的权限。
不过自己也是照着PPT做的,还必须要加强联系,稳固记忆。
教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。
教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。