实验七:数据库安全性
学号: 姓名: 班级:
一、实验目的
掌握SQL SERVER下的数据库安全管理机制。
二、实验内容
(1)注册一个“登录”(loginin),登录名为自己的学号,密码为‘123456’,默认数据库为
Student_info,并将该登录加入服务器角色“sysadmin”。
创建语句:
注意:学校机房总是出错,可能是2005安装关系,可以考虑调用存储过程:
EXEC sp_addlogin @loginame = '你的学号', @passwd = '123456', @defdb = 'Student_info' SP_ADDSRVROLEMEMBER '你的学号', 'SYSADMIN' 提示:可通过该登录名?右击?属性 打开[登录属性]对话框,点击左侧的[服务器角色]查看具体信息。
(2)注册一个“登录”(loginin),登录名为自己的姓名,密码为‘123456’,默认数据库为
Student_info,该登录不属于任何服务器角色。
创建语句:
(3)在数据库Student_info下创建一个用户,用户名为自己的学号,并将它和登录名为自己的学号的登录连在一起,察看该用户属于哪个数据库角色,对数据库对象有哪些操作权限。
创建语句:
注意:学校机房总是出错,可能是2005安装关系,可以考虑调用存储过程:
EXEC dbo.sp_grantdbaccess @loginame = '你的学号', @name_in_db = '你的学号'
查看权限:
注意:先要【添加】对象(选择对应的表)才可看到具体权限。
(4)在数据库Student_info下创建一个用户,用户名为自己的姓名,并将它和登录名为自己的姓名的登录连在一起,察看该用户属于哪个数据库角色;编辑修改该用户属性,并为该用户分配数据库中各对象的操作权限:
创建语句:
1
a.对student表拥有全部权限; 授权语句:
查看权限:
b.对course只有select 权限; 授权语句:
查看权限:
c.对sc表的sno、cno列具有select权限,对grade列没有任何权限。 授权语句:
查看权限:
(5)创建一个自定义角色“学生”,并将以自己姓名命名的用户添加为成员。 创建语句:
注意:学校机房总是出错,可能是2005安装关系,可以考虑调用存储过程:
EXEC dbo.sp_addrole @rolename = '学生', @ownername = 'dbo' SP_ADDROLEMEMBER '学生' ,'你的姓名'
(6)断开原来的连接,用学号登录企业管理器,进入Student_info数据库,测试用学号登录后,是否拥有对数据库的全部操作权限(注意:该登录属于sysadmin组)。 提示:测试方法就是书写相应的查询语句或者增、删、改操作。 如:select * from student 测试结果:
Select * from sc 测试结果:
(7)断开原来的连接,用姓名登录企业管理器,进入学生成绩数据库,测试用姓名登录后,拥有对数据库的哪些操作权限。
提示:测试方法就是书写相应的查询语句或者增、删、改操作。 如:select * from student 测试结果:
Select * from sc 测试结果:
(8)观察(6)和(7)相同测试语句的不同测试结果,分析其原因。
2