实验八,索引
实验八 索引及数据库安全 一、实验目得(1)理解索引得概念与类型。
(2)掌握使用SQL Server Management Studio创建与维护索引得方法。
(3)掌握T-SQL语句创建与维护索引得方法、(4)掌握SQL SERVER下得数据库安全管理机制 二、实验内容 请分别通过SQL Server Management Studio与T-SQL语句完成该实验。
1、、索引(1)为Student表创建一个以Sno为索引关键字得惟一聚簇索引,索引名为Sno_index。若索引已存在,请先删除。
企业 管理器: ①、检查索引就是否存在 如右图, 该索引不存在 ②、创建索引 单击“ 添加”
T-SQL 语句: if exists(select * from sysindexes where name="Sno_index")drop index Student。Sno_index create unique clustered index Sno_index on Student(Sno)先删除聚集索引'PK__Student__CA1FE4640BC6C43E‟(这一步可能会不存在,依据题目做)
(2)为Student表创建以Sname,Sex为索引关键字得非聚簇索引,对Sname以升序来排列,Sex以降序排列,索引名为ss_index、企业管理器: ①、同时选中Sna me, Sex两行, 右击, 选择“ 索引/键", 单击“ 添加” ②、在“ 列” 一行中, 继续添加详细信息 按“ 确定” 键退出 ③、添加其她信息
选择“ 关闭” 退出 T -S QL语句: create nonclustered index ss_index on Student(Sname asc,Sex desc)(3)将索引文件ss_index删除。
企业管理器: 选择“ 删除” 完成删除操作 T T-SQL 语句: drop index Student。ss_index(4)针对下列4条select语句,在查询分析器中查瞧这些语句得预执行计划,分析预执行计划得不同点及原因。
a、Select * from Student
b、Select * from Student where Sno=‟‟ c、Select * from Student where Sname like „张%‟ and Sex="女" d.Select * from Student where ClasSno="051’ 不同点: 执行处得结果不相同 原因:wh er e条件语句不同 2。数据库安全(1)注册一个“登录”(loginin),登录名为自己得学号,并将该登录加入服务器角色“system
administrators”。
企业管理器: ①、在资源管理器中选择“ 安全性”→ 登录名→ 新建登录名 出现如下界面: ②、添加信息
搜索结果中选择其一 单击确定退出 ③、在“ 服务器角色”中 中, 选择服务器角色“system m ad mi ni strator s” 单击确定退出 T -S QL 语句: create login S20110001 with password='20110001’ sp_addsrvrolemember S20110001,sysadmin(2)注册一个“登录”(loginin),登录名为自己得姓名,该登录不属于任何服务器角色。
create login 张三 with password=’20110001"(3)在 数 据 库
Student_info 下创建一个用户,用户名为自己得学号,并将它与登录名为自己得学号得登录连在一起,察瞧该用户属于哪个数据库角色,对数据库对象有哪些操作权限。
use Student_info go create user S20110001 for login S20110001 权限操作: 资源管理器→ 安全性→ 用户→S2 011000 1, 右击, 选择属性
(4)在 数 据 库Student_info 下创建一个用户,用户名为自己得姓名,并将它与登录名为自己得姓名得登录连在一起,察瞧该用户属于哪个数据库角色;use Student_info go create user 张三 for login 张三
接下来得步骤同上理 编辑修改该用户属性,并为该用户分配数据库中各对象得操作权限: a、对Student表拥有全部权限;grant insert,update,delete on Student to 张三 b、对Course只有select 权限;grant select on Course to 张三 c、对sc表得Sno、cno列具有select权限,对Grade列没有任何权限、grant select(Sno,Cno)on SC to 张三(5)创建一个自定义角色“学生”,并将以自己姓名命名得用户添加为成员。
create role 学生
sp_addrolemember 学生,张三(6)断开原来得连接,用学号登录企业管理器,进入 Student_info 数据库,测试用学号登录后,就是否拥有对数据库得全部操作权限(注意:该登录属于system administrators组)。
用学号登录后, 不拥有对数据库得全部操作权限(7)断开原来得连接,用姓名登录企业管理器,进入学生成绩数据库,测试用姓名登录后,拥有对数据库得哪些操作权限。
只能对数据库进行查瞧, 并不能修改
