数据库实验三 安全管理

更新时间:2024-03-21 02:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 安全管理

一、 实验目的

1. 掌握SQL Server安全控制的两种模式

2. 学会管理SQL Server登录账号、数据库用户、各种权限 3. 学会使用角色管理用户及权限 二、 实验内容

1. 用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2和log3。

Log2 、log3建立如同上图

2. 利用实验一建立的“教师授课管理数据库”,用log1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中“教师授课管理数据库”?为什么?

可以看到。因为所用的数据库服务器名称是一样的,所以该数据库服务器上的数据库就可以看到,但是没有访问权限。

3. 将log1、log2和log3映射为“教师授课管理数据库”中的用户,用户名同登录名。

Log2 、log3建立如同上图

4. 再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表中是否能看到并选中“教师授课管理数据库”?为什么?答:可以看到,因为给其设置了访问权限。

5. 用log1用户在“教师授课管理数据库”中执行下述语句,能否成功?为什么?

SELECT * FROM 课程表

答:不能成功。因为LOG1没有对课程

6. 授予log1具有对课程表的查询权限,授予log2具有对课程表的插入权限。 答:

对log2设置插入权限时只需将 Insert权限的授予选中即可。

7. 在SSMS中,用log2建立一个新的数据库引擎查询,执行下述语句(根据自建数据库修改表名、列数等),能否成功?为什么?

INSERT INTO 课程表 VALUES(‘C001’,’数据库基础’,4)

答:可以,因为给予其插入权限,所以可以插入新内容。

再执行下述语句,能否成功?为什么? SELECT * FROM 课程表

答:不能成功。因为log2没有查询权限。

8. 在SSMS中,在log1建立的数据库引擎查询中,再次执行语句:

SELECT * FROM 课程表

答:可以成功。因为授予log1查询权限了。

这次能否成功?但如果执行下列语句:

INSERT INTO 课程表 VALUES(‘C003’,’软件工

程’,4)

能否成功?为什么?

答:不能成功。因为log1没有查询权限。

9. 授予log3在“教师授课管理数据库”中具有建表权限。

10. 在“教师授课管理数据库”中建立用户定义的角色

SelectRole,并授予该角色对教师表、课程表和授课表具有查询权。

11. 新建立一个SQL Server身份验证模式的登录名:pub_user,并让该登录名成为“教师授课管理数据库”中的合法用户。

答:该操作和LOG1的操作相同,先建立SQL Server身份验证模式的登录名:pub_user,然后设置“教师授课管理数据库”为其默认数据库。

12. 在SSMS中,用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么? SELECT * FROM 课程表

答:不能,因为pub_user没有查询权限。 13. 将pub_user用户添加到SelectRole角色中。

14. 在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么? SELECT * FROM 课程表

答:可以。因为SelectRole角色对教师表、课程表和授课表具有查询权,将pub_user添加在SelectRole角色中,pub_user就有了查询权,就可以查询了。

本文来源:https://www.bwwdw.com/article/acw8.html

Top