9实验九索引.docx
《9实验九索引.docx》由会员分享,可在线阅读,更多相关《9实验九索引.docx(17页珍藏版)》请在冰豆网上搜索。
9实验九索引
实验九索引及数据库安全
、实验目的
(1)理解索引的概念与类型。
(2)掌握使用SQLServerManagementStudio创建与维护索引的方法。
(3)掌握T-SQL语句创建与维护索引的方法。
(4)掌握SQLSERVER下的数据库安全管理机制
、实验内容
请分别通过SQLServerManagementStudio和T-SQL语句完成该实验。
1•索引
(1)
Sno_index。
右
为Student表创建一个以Sno为索引关键字的惟一聚簇索引,索引名为索引已存在,请先删除。
企业管理器:
①、检查索引是否存在
X
ZQY-PC.studentjnfo-
「””“列名
dbo.Studer埶13袈
*
隔Sno
diarfS)
char(3)呦aldatetiTiE
i'措人別(W
char(4C)
ar(6j
亘]零即帧]二
編全0耳|旧...聶XVL妄弓凶”,圃CHECK...詔空间索斛哄
PKStudent
如右图,该索引不存在
②、创建索引单击“添加”
列
昱唯一的
说明
表说计誥
创鑑为聚集范思BS重复懸垃据空勰范
雲引jji口1ASC】
日
Snoindex
PR[M4RY
El
T-SQL语句:
ifexists(selectdropindexStudent
*fromsysindexeswherename='Sno_index')
.Snoindex
SQLQueiy&.阴1-ZQ...(EqyPC\zqy(52))'
Hifexists(selec匸*frcansy3indexestrtiexenanue='5no_in由消息
命令已成功郑如
:
二
11X
2QYPCStudcntJnfG
dho^tuderTt□!
_
>1
/■沁
char曲
E
因Kr主昨
ffthar®
IM)
申
idljdte^ne
屮
«rl3)
XJtlMl...
讪上也Fie
烝/«lk
Jirchar{-全立室削(FJe
E:
-
XML^IXI-
酉
,-h7-.J
呈F丑引卩1,
1A』u-
■
ZQV-PC.Student.Info-dbo.StudentS<^L<^u&ry6ksql-Zi
□createuniqueclusteiecInfiexSnoind«x
:
A消息
LonStuderLt.Sno}
窃令已咸功完成。
(2)为Student表创建以Sname,Sex为索引关键字的非聚簇索引,对Sname以升序来排列,
Sex以降序排列,索引名为ss_index。
企业管理器:
1、同时选中Sname,Sex两行,右击,选择"索引/键”,单击"添加”
2、在“列”一行中,继续添加详细信息
案引列
指走用于此蛊引的列巧倉序顾序(G;
列名
Sn^nne
升序
Sex
|降序
j
按“确定”键退出
③、添加其他信息
0舷)
翹素弓
曰标旧
(舍勸
说明
选择“关闭”退出
T-SQL语句:
createnonclusteredindexss_index
onStudent(Snameasc,Sexdesc)
ZQY-PC.StudentJnfo-dbo.Student*?
SQLQuery^
3crsacenoncl口孚匸eh巳口indexssindex
1onStudentiSnameascrSexdesc)
in
」消息
命令已成功完成-
(3)将索引文件ss_index删除。
企业管理器:
选择“删除”完成删除操作
T-SQL语句:
dropindexStudent.ss_index
ZQY-PC.Student_iinfo-dbo.Student?
SQLQl
dropIndexStudentindex
弘消息
命令已
(4)针对下列4条select语句,在查询分析器中查看这些语句的预执行计划,分析预执行计划的不同点及原因。
a.Select*fromStudent
SelectframEt-jdeTit
nr
b.Select*fromStudentwhereSno='0110001'
工Q屮-PC占tud已nt.info-dbe.Student£QLQu&ry€.s<|l-2QU.PC\z^ySelecrfcfroirSuucenuwhere3no=12QL1QOQ1'
trr
SnarneSecBirtfi
OassnoErrtrance^daie
2011-09-0100:
00.1
曲结果.J消息
[20110001[张虹里13S2-0M100:
MiW051
c.Select*fromStudentwhereSnamelike张%'andSex='女'
ZQV-PC.StudentJnfo・dbo.StudentSQLQuery6rsql-ZQ.„(zq/-RC\zqy(52))*
Select*'fr-Qin£七口dentwhereSnair.e1二kw'弓长电'andSex=11
jrr
EnoSnam&SatBhthOassnoErrtranee_d3t&Home_ad±SdeptPd.Select*fromStudentwhereClasSno='051'
ZQY-PC.Student_irfp-dbo.StudentEQLQueTy6・s<|l-Z^^/zqy-PC\zt|y(32})*
SelecthfroxStudentwhere匚1a35hq='0511
Trr
3结果
岛消息
Sno
Sname
5&c
Birtfi
Qassna
Enrtraricie_daie
H9ine_-3d<
1HIE!
HI・"!
-■:
"・▼!
・
1|20110001|弓&虹
1992-0^0100:
00:
00
051
2O1H)M1OO:
OO:
(»
甫京
22011D0D2林红
1391-11-12
051
2Q11-0&41OO.OD.DQ
北克
不同点:
执行处的结果不相同原因:
where条件语句不同
2.数据库安全
(1)注册一个“登录”(loginin),登录名为自己的学号,并将该登录加入服务器角色“system
administrators”。
企业管理器:
①、在资源管理器中选择“安全性”t登录名t新建登录名
Ji
出ESK»-;JfegftF)
if_j匕制
ilJ兰週
出现如下界面:
□豐录名-乗建■*”*
卓b滋〒(3帮Hi
會尿务辭包
?
用户映射
登录屯00:
上旻全剤蒙
4耘
dWimdcwE身"份验证CT)
SQLSarver身份验证⑻
巒冯on:
②、添加信息
■7・・1i■-
—般性査诃
名称锄:
[起始拘丁描述6):
莎药—-
_禁用的帐户助
□不过期密码Q0
自上衣登录后的天師口〕
越章结杲on:
所在里件妄
^lEIYlES&,
^UhJiHEIGKTi电nmniu...
^JEWIIXL.
4呷ZQJV-FC
电r^a级证书卑拄剖吕垦读
—搜索结果中选择其一
单击确定退出
3、在"服务器角色”中,选择服务器角色"systemadministrators
•服势器角色⑶:
<
五nlkaSindtcreator
'diskadminpi-oc^s^adiniik
[7publicg"urityadminserveradmin盹tupadmin
*[7]sysid^ii^
单击确定退出
T-SQL语句:
createloginS20110001withpassword='20110001'
jQLQderyfiL5ql-ZQ_(zqy-PC\zqy(52))=
EcreateloginS2*******
-withpassward*
*|
Hl
由消息
命令已成功完成;
sp_addsrvrolememberS2*******,sysadmin
-ZQ.„(zqy-PCXEqy<52}J*
sp_addsrvioi®n:
enifceT520110001,3ysadir.in
&消息
命令已咸功兗成。
(2)注册一个“登录”(loginin),登录名为自己的姓名,该登录不属于任何服务器角色。
createlogin张三
withpassword='20110001'
SQLQueryS.sql-ZQ...(zqy-PC\2qy(5Z))"
日createlogin弓长三
withpassword-1iCllC-3011
氐消息
命令已成功完成*
(3)在数据库Student_info下创建一个用户,用户名为自己的学号,并将它和登录名为自己的学号的登录连在一起,察看该用户属于哪个数据库角色,对数据库对象有哪些操作权限。
useStudent_info
go
createuserS2*******forloginS2*******
£QLQueiy&.sql-2Q._go
□createj.s^r320110001
LforloginS2*******
-
血消息
命令已咸功完成。
权限操作:
资源管理器t安全性t用户tS2*******,右击,选择属性
-M;Q¥-PC($QL対Vb-$30111-
•_j彌吉
UJ亞齢
辛ehiE划cyE虫*lAQie$$Lr^L"卜.^='Tv1\:
l'oJicy-iqlE>f-rirtinnLac;\IVTA^THORTTY'SZS7EI1,0NTSE4VKE\MS^Ql£FHVEftJW5=硏皿卩FQ.EF尺许RAPFh
匚£
4刘
盘张H
两口孵励色
itl□住
e_l环比-胡R也L□車桂
i_J皓〒记出K
=3臣許好
盘略:
6
J5S■:
A:
SS:
P)
耳斬nWtf皿
日登录S性-£50110001
送择贡
a脚本FLj,帮助
朋务器角色用于向用户授予月I
腿务器ftfeCS):
bulkadmiadliareatci-rdiskaJrhiIIprocessaklminP^bli嘻TecuFTtySidrniix5erveraimhl5etupadminsj^adnin.
nnBBlaFIrlEI團
d登录层性-■SM110001
送释页
埶拥库甬色咸員身份汛〕5吐耿
&■
db_acc^ss直dmindt_b札clrap^per*torAb_dit^rfidJb_da.t4writsrdbddl^dmiii
dib_dfiTLyda.twreader
iter
dJbowr^r
已启甲缸吃t帐户:
master
All/Xr
(4)在数据库Student_info下创建一个用户,用户名为自己的姓名,并将它和登录名为自
己的姓名的登录连在一起,察看该用户属于哪个数据库角色;
useStudent_info
go
createuser张三
forlogin张三
SQLQueryfi.sql-ZQ^(iqy-PC\zc
S^udent_ii:
fo
日二吕匕二耳存匸
1-forlogin张=
妾下来的步骤同上理
编辑修改该用户属性,并为该用户分配数据库中各对象的操作权限:
a.对Student表拥有全部权限;
grantinsert,update,delete
onStudent
to张三
S^LQu^ryS.sql-Z^H(zqy-PC\zqy(52)r|
Elgrantinsert.update,dele匸童
□nScudenc
L®张二
*1
rn
1消息
命令已成功完成・
b.对Course只有select权限;grantselect
onCourse
to张三
自消息
命令已咸功詫成。
c.对sc表的Sn0、eno列具有select权限,对Grade列没有任何权限。
grantselect(Sno,Cno)
onSC
to张三
p£QLQueiy6.&ql-ZQ._(zqy-PC\zqy(
曰grancseLiectrSnofCnc】
onSC
Lto张三
由消息|
命令已成功碌
(5)创建一个自定义角色“学生”,并将以自己姓名命名的用户添加为成员。
createrole学生
.?
QLQuery$.sql-ZQ»(zqy-P
匚reaterole学主
sp_addrolemember学生,张三
SQLQueryC.sql-ZQ^(2qy-PCVqy(52))*addro1err.ertb*r学牛”张二
爲耳息
命令已成功圭成%
(6)断开原来的连接,用学号登录企业管理器,进入Student_info数据库,测试用学号登
录后,是否拥有对数据库的全部操作权限(注意:
该登录属于systemadministrators组)。
用学号登录后,不拥有对数据库的全部操作权限
(7)断开原来的连接,用姓名登录企业管理器,进入学生成绩数据库,测试用姓名登录后,
拥有对数据库的哪些操作权限。
只能对数据库进行查看,并不能修改