数据安全性实验演示
Posted Zeker62
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据安全性实验演示相关的知识,希望对你有一定的参考价值。
文章目录
实验准备
本实验准备软件:Azure Data Studio 和 MS SQLserver Manger Sudio
修改服务器的身份验证模式
修改服务器的身份验证模式为“SQL Server和Windows身份验证模式”。
打开MS SQLserver Manger Sudio
右键服务器->属性
点击“安全性”,并勾选图中两个选项:
关闭MS SQLserver Manger Sudio
实验背景
期末考试结束了,小晨作为DBMS管理员,既要保证老师能够正确输入成绩,又要保证学生只能查看成绩,还要确保各个角色的用户权限的正确性,小晨陷入了沉思……
实验结构:
- 数据库Score:拥有所有学生的成绩
- 表ScoreA:A班成绩
- 表ScoreB:B班成绩
- 每个表的属性列有:学号、姓名、科目、成绩
- 数据库角色:
- 老师Kong:A班班主任,拥有查看所有学生成绩并且对A班有所有权限
- 老师Ling:教B班的DS老师,只拥有查看学生成绩和修改B班DS成绩的权限
- 老师Meng:年级主任,拥有对数据库查看和修改数据的权限,但不具有删除的权限
- 学生Student:只能查看自己的成绩
- 老师可以授予学生一定的权限
实验步骤
创建数据库、表
CREATE DATABASE Score
go
USE Score;
-- ABCD四个班
CREATE TABLE A(
id int PRIMARY KEY,
name VARCHAR(30) NOT NULL,
course VARCHAR(30) NOT NULL,
sorce VARCHAR(30) NOT NULL
);
CREATE TABLE B(
id int PRIMARY KEY,
name VARCHAR(30) NOT NULL,
course VARCHAR(30) NOT NULL,
sorce VARCHAR(30) NOT NULL
);
随便设置一些数据,导入:
20190001 张日成 数据结构 80
20190001 张日成 面向对象 80
20190001 张日成 编译原理 100
20190001 张日成 php程序设计 80
20190010 椰子片 数据结构 100
20190010 椰子片 C++程序设计 100
20190010 椰子片 计算机网络 100
20190010 椰子片 操作系统 100
20190020 陈小聪 数据结构 89
20190020 陈小聪 编译原理 70
20190020 陈小聪 软件工程 90
20190020 陈小聪 动画设计 100
20192002 宋白 数据结构 98
20192002 宋白 计算机网络 97
20192002 宋白 操作系统 78
20192003 吴京牛 数据结构 59
20192003 吴京牛 操作系统 56
20192003 吴京牛 计算机系统 78
20192004 宋大宝 数据结构 20
导入后查看数据:
SELECT * FROM A
select * from B
创建数据库角色
首先需要创建服务器对象:
create login K with password = '123456';
create login L with password = '123456';
create login M with password = '123456';
create login S with password = '123456';
紧接着,创建数据库对象
use Score
go
create user Kong for login K
create user Ling for login L
create user Meng for login M
create user Student for login S
授予权限
授予老师的权限
-- 授予老师Kong权限
-- 查看所有学生成绩
use Score
grant select on A to Kong
with grant option
grant select on B to Kong
with grant option
GRANT ALTER,DELETE,INSERT on A to Kong -- 授予kong老师对A班至高无上的权力
-- 授予Ling老师的权限
use Score
grant select on A to Ling
with grant option
grant select on B to Ling
with grant option
GRANT update("成绩"),alter on B to Ling -- ling老师只能修改成绩
-- 年级主任
use Score
GRANT SELECT,ALTER,UPDATE ON A TO Meng
with grant option
GRANT SELECT,ALTER,UPDATE ON B TO Meng
with grant option
授予学生权限
验证权限
-- 使用Kong登录,验证kong老师的权限
use Score
select * FROM B
SELECT * FROM A
use Score
insert into A("学号","姓名","课程","成绩")
values (20190033,'张大成','计算机网络','80')
-- 报错
use Score
insert into B("学号","姓名","课程","成绩")
values (20190063,'张小成','计算机网络','80')
-- 使用Ling登录
use Score
select * FROM B
SELECT * FROM A
-- 成绩清空
UPDATE B SET "成绩"=0
-- 报错
UPDATE B SET "学号"=0
以上是关于数据安全性实验演示的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020-1 20175227张雪莹《信息安全系统设计基础》实验三 《并发程序》
2017-2018-1 学号20155209 《信息安全系统设计基础》第十五周学习总结