数据安全性实验演示

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

以上是关于数据安全性实验演示的主要内容,如果未能解决你的问题,请参考以下文章

20145209&20145309信息安全系统设计基础实验报告

2018-2019-1 20165320 《信息安全系统设计基础》 缓冲区溢出漏洞实验

实验一: 代码审计

防火墙配置最详细的实验演示

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便