问题的提出
数据共享带来数据库安全性问题
安全性
指保护数据库以防治不合法使用,导致数据泄露 ,更改或破坏
不安全因素:
- 非授权用户的存取和破坏
- 数据库重要数据被泄露
- 系统安全性脆弱
安全标准:
- TCSEC(桔皮书): A /B /C /D (严格到松散)
- CC(通用准则): EAL7 / EAL6…EAL1(TCSEC的A1 到 C1),我国采为的标准
安全性控制
计算机系统重,安全措施层层设置:
合法用户–DBMS存取控制–操作系统保护措施–数据加密
-
用户身份鉴别
静态口令鉴别
动态口令鉴别
生物特征鉴别
智能卡鉴别 -
存取控制
- 用户权限定义:授权给用户
- 存取控制: DBMS合法权限检查
自主存取控制DAC
c2级
数据库老师仅对数据库课程有存取权限,对英语则没有
老师和学生对选课系统,有不同的存取权限
具有相当权限的人可以授权给其他人
存取权限
数据库模式 (模式/基本表/视图/索引): 多为 create / 基本表为create table, alter table
数据 (基本表和视图 / 属性列) : 更新/查询/ references / all privileges 特权 ; 缺少delete
授权grant / 收回revoke
例如:
grant
grant select --all priviliges 所有权限/ 对某列的授权 update(sno) ,select 应用于用户名,使之不可修改密码 /
on table student -- 有的dbms中可以去掉table
to u1,u2 --用户
with grant option; -- 可以让u1,u2用户 将该权限, 授权给其他人
revoke
revoke select
on table student
from u1 cascade -- cascade 级联, 把u1授权给其他人的权限收回 / restrict 限制 /public 全体用户 /
创建用户(没有用户没授权)
代码举例:
create user zhangsan
with -- dba /resource / connect
角色(权限的集合)
问题: 上万人授权有老师有学生, 很麻烦
解决: 为相同角色的用户创建一个角色, 类似java中的类
作用: 简化授权的过程
代码举例:
创建角色:
create role teacher
角色授权:
grant select, update, insert
on table student
to teacher
授权给用户:
grant teacher
to 杨大佬,闾大佬
收回角色权限
revoke teacher
from 杨大佬
增加角色权限:
grant delete
on table student
to 闾大佬
强制存取控制
问题: 授权过程无意泄露
例如:工资授权给public, 所有人可见
适用: 对数据由严格而固定密级分类的部门,如军事/政府部门 / 更高的安全性 / 用户不能感知或进行控制
实体分为
主体: 实际用户学生等 ,许可证级别为敏感度(绝密 / 机密 /公开 / )
客体: 学生成绩 ,密级
规则:
读:
军官(机密级别) , 只能读取大于等于客体的密级(公开/可信/机密)
写:
军官(机密级别), 公开/可信/机密/绝密中, 仅可公开/可信级别写
-
视图机制
隐藏相关视图
计算机系老师/ 语言系老师
建立计算机视图 ,
一般计算机系老师查询
计算机系主任 所有权限 -
审计
-
数据加密
待续、更新中
—————————————————————
以上就是今日博客的全部内容了
创作不易,若对您有帮助,可否点赞、关注一二呢,感谢支持.