2021-4-17课程——第四章例题-数据库安全性【续】

本篇主要总结第4章数据库安全性的后续部分——强制存取控制、视图机制、审计、数据加密
一、强制存取控制

自主存取控制机制下,用户可以自由地决定将数据的存取授予任何人,以及决定是否也将“授权”的权限授予别人,这种情况下仍可能存在数据的“无意泄露”,所以需要对系统控制下的主客体实施强制存取控制策略。在强制存取控制中,全部实体被分为主体客体两部分。

主体:系统中的活动实体。既包括数据库管理系统所管理的实际用户,也包括代表用户的各进程。

客体:系统中的被动实体。受主体操控,包括文件、基本表等。

敏感度标记(label):分为若干级别,绝密TS、机密S、可信C、公开P等,密级次序依次递减。主体的敏感度标记称为许可证级别,客体的敏感度称为密级

规则:

(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。
二、视图机制

为不同的用户定义不同的机制,把数据对象限制在一定范围内。视图机制间接地实现支持存取谓词的用户权限定义

例:建立计算机系学生的视图,把对该视图的select权限授予王平,把该视图上的所有操作权限授予张明
-- 建立视图
create view CS_Student
as
select *
from Student
where Sdept='CS';
-- 王平老师只能检索计算机系学生的信息
grant select
on CS_Student
to 王平;
-- 系主任具有检索和增删改计算系学生信息的所有权限
grant all privileges
on CS_Student
to 张明;

2021-4-17课程——第四章例题-数据库安全性【续】_第1张图片
2021-4-17课程——第四章例题-数据库安全性【续】_第2张图片

三、审计

审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员恶意利用审计日志监控数据库中的各种行为,重现导致数据库现在状态的一系列事件,从而找出非法存取数据的人、事件和内容等。

audit语句用来设置审计功能,noaudit语句则取消审计功能。

例1:对修改SC表结构或修改SC表数据的操作进行审计
audit alter,update
on SC;
例2:取消对SC表的一切审计
noaudit alter,update
on SC;
四、数据加密

加密的基本思想是根据一定的算法将原始数据——明文变换为不可直接识别的格式——密文,从而使得不知道解密算法的人无法获知数据的内容。

数据加密主要包括存储加密和传输加密

2021-4-17课程——第四章例题-数据库安全性【续】_第3张图片
2021-4-17课程——第四章例题-数据库安全性【续】_第4张图片

五、拓展与感悟
课上老师还讲了MD5加密技术,下课后我百度了关于这个加密技术的一些信息,它已经过时了,因为有网站和一些碰撞算法可以对其进行破解,之后想结合SQL注入试一下这个,我之前自己学Java JDBC的时候试过statement的SQL注入,它可以通过PrepareStatement进行预编译来防止,但不是稳定的,有垂直加密的什么方式,比如Shiro。加密和信息安全在当今这个互联网时代,确实是一个热门,希望我们的隐私在这个时代可以得到更好的保护,也希望自己能为此尽绵薄之力!

你可能感兴趣的:(SQL,Server+C#)