《数据库系统原理》
实验报告
2023~2024学年第二学期
练习十 使用 SQL Server 安全性管理数据库
◆ 上机目的
1. 掌握SQL Server的安全性机制。
2. 掌握数据库登录账号的创建及修改方法。
3. 掌握数据库服务器角色管理的应用方法。
4. 掌握数据库角色的创建方法。
5. 掌握表的用户的创建及角色分配方法。
◆ 上机内容
1. 在自己的数据库中创建一个教师登录账号(用户名为 teacher,密码为 teacher),该教师的权限设置如下:
① 数据库服务器角色:Database Creators。
② 可访问的数据库为学生成绩管理数据库即同学们自己创建的数据库。
③ 可以访问的数据表、字段如下:
Ø ClassInfo(不允许删除和添加记录操作,具有查询所有字段和更新 ClassName、ClassDesc字段权限)
Ø StudInfo(不允许删除、添加记录操作)
Ø StudScoreInfo(允许添加、删除、修改操作)
Ø CourseInfo(只允许查看操作,不允许修改、删除、添加记录操作
2. 在自己的数据库中创建一个学生登录账号(用户名为stud,密码为stud),该学生的权限设置如下:
① 数据库服务器角色:无。
② 可访问的数据库为学生成绩管理数据库即同学们自己创建的数据库。
③ 可以访问的数据表、字段如下:
Ø ClassInfo(只允许查看操作,不允许修改、删除、添加记录操作)
Ø CourseInfo(只允许查看操作,不允许修改、删除、添加记录操作)
Ø StudInfo(只允许查看除 StudBirthDay 字段外的属性,不允许修改、删除、添加记录操作)
Ø StudScoreInfo(只允许查看操作,不允许修改、删除、添加记录操作)
3. 为数据库建立两个角色:一个为 MyTeacher,分配的权限同第 1 题;另一个为 MyStud,分配的权限同第 2 题。
① 创建一个登录账号:TeacherRole,密码为:TeacherRole,访问学生成绩管理数据库,分配角色为MyTeacher。
② 创建一个登录账号:StudRole,密码为:StudRole,访问学生成绩管理数据库,分配角色为 MyStud。
4. 分别使用 StudRole、TeacherRole 登录数据库,并分别写出一条测试各权限的 SQL 语句
SELECT StudentID, StudentName, Gender, ClassID FROM StudInfo;
UPDATE ClassInfo SET ClassName = 'NewClassName' WHERE ClassID = 1;
5. 试用 T-SQL 编程建立本班同学登录账号,并指定数据库角色为 DBCreator。