当前位置:网站首页>数据库安全性和数据的完整性
数据库安全性和数据的完整性
2022-07-23 02:46:00 【攀登程序猿】
不安全因素
1、非授权用户对数据库的恶意存取和破坏
- 一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
- 数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。
2、数据库中重要或敏感的数据被泄露
- 黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。
- 数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
- 审计日志分析
3、安全环境的脆弱性
制定的标准
TCSEC/TDI标准包含安全策略、责任、保证、文档四个方面
CC标准包含安全功能要求和安全保证要求

安全性控制

用户身份鉴别
是合法用户(账户、密码、脸部识别、虹码识别等)
静态口令:口令不经常修改,安全性较低;
动态口令:每次登录使用新生成的口令;
智能卡等
存储控制机制/角色
Oracle为例:
Oracle将角色和权限分开,角色是一组权限,给用户赋予权限即可。
权限包含:系统权限(session/table/index/view/sequence/trriger的创建权限)
对象权限:数据的增删改查
角色:系统一般预定义了DBA、connect、resource三个角色,DBA是管理员,开发一般使用connect和resource。
常用命令:
(1)SELECT * FROM user_sys_privs; // 查看当前用户的所有系统权限,ADMIN_OPTION为yes,代表可以转授

(2)SELECT * FROM USER_ROLE_PRIVS; // 查看当前用户的角色 
(3)给用户赋予角色
grant 角色名 to 用户名
grant 角色权限 on 对象 to 用户
grant 角色|权限 on 对象 to 用户 with grant option,是否允许用户转授此权限,不允许循环授权
grant 角色 to 角色 withi anmin option with admin option是可以把角色再授予其它角色,授予者是角色的创建者或者拥有角色的admin option
GRANT SELECT,DELETE,UPDATE,INSERT ON zhang.person TO CHENMH ;
(4)SELECT * FROM USER_TAB_PRIVS; 查看当前用户的对象权限
(5)自定义角色
create role student; -----创建角色
grant select on class to student; -----授权角色
drop role student; -----删除角色
(6)回收权限
reovke 权限 on 对象 from 用户 [cascade|restrict] cascade为级联回收,当此用户给别的用户授权过的话,则一起回收,restrict为受限回收,需要先把此用户给别人授过的权限回收后,此权限才能回收。
强制存取控制
自主存取控制仅仅通过对数据的存取权限来进行安全控制,而对数据本身并无安全性标记,比如财务可以看到所有人的工资,其它人看不到所有人的工资,但是财务将数据复制到自己新建的表中,并且允许所有人查看,则会造成所有人都可以看到工资了。
给用户(主体)和对象(客体)设置敏感度标记(绝密>机密>可信>公开),当主体的许可证级别大于或等于客体的密级时,才允许读;当主体的许可证级别小于或等于客体的密级时,才允许写。
视图机制设置访问
前面的都是表和列,无法控制行或者某些符合条件的行,使用视图可以实现根据存储谓词的操作。
审计
前面的都是预防性的措施,审计是监控措施,启动一个专用的审计日志,将用户对数据库的所有操作都记录到日志中。
注:审计日志耗时、耗费性能,并且需要关注文件大小和转储
用户级审计:当前用户
系统级审计:系统管理员
ORACLE为例:
(1)查看是否开启审计 show parameter audit;
第一个是审计日志的目录,第二个是是否开启,sudit_trail是开启的审计级别

数据的完整性
正确性:性别的取值只能是男或者女
完整性:不同表的关联值不能错误,即选课的课程必须存在
方法:
完整性约束机制(定义、自动检查、违反时违约机制),其中违约后有两种,一种是直接解决,一种是级联,即选课时,课程不存在,则默认加一个课程,此时已经满足了,在插入学生的选课。
实体完整性:关系的主属性不能取空值,使用主键,代表了实体唯一,为防止全表扫描,都会自动建立一个B+索引。
参照完整性:外键或者取空值,或者为关联表某个元组的主码的值,外键即可,
用户定义的完整性:列值非空、列值唯一、列值范围,已在Oracle学习 CSDN
断言:
触发器:
边栏推荐
- 凌晨两点,你们都在卷什么?
- [BDSec CTF 2022] 部分WP
- Tsinghua, air, Tencent | 3D isovariant molecular map pre training
- 2022-07-22:以下go语言代码输出什么?A:1;B:1.5;C:编译错误;D:1.49。 package main import “fmt“ func main() { var i
- 并发编程中volatile面试总结
- C——结构体
- vue3用keep-alive缓存页面了,但是每次切换tab进入页面还是会进入onMounted,导致没有缓存效果,为什么呢?
- 系统安全测试要怎么做,详细来说说
- 亿级流量下的分布式锁优化方案!太好用了~
- 百度地图鹰眼轨迹服务
猜你喜欢
随机推荐
广发期货是什么级别?开户安全可靠吗?
亿级流量下的分布式锁优化方案!太好用了~
nchar字符引起的ora-12899错误
js div 滚动到底部
Liunx上杀死一进程
kali下安装go环境
The method of page Jump in PHP
PNA PNA modified polypeptide Pro Phe Arg PNA (s-2302) | DNP Gly x l Pro Gly PNA
分库分表真的适合你的系统吗?聊聊分库分表和NewSQL如何选择
express操作mysql,sql哪里写错了?
【Node中间层实践(三)】----模板引擎pug
目前都有哪些年利率6%左右的保本理财产品?
检测Windows安全缺陷工具wesng的学习与使用
ACM SIGIR 2022 | 美团技术团队精选论文解读
How is it safe to open an account for Haitong Securities' exchange fund
Verilog grammar basics HDL bits training 04
【洛谷】P1318 积水面积
外地人在华泰开户安全吗?会被骗吗
Ardunio——ULN2003驱动板和直流电机风扇——控制风扇转速
Tsinghua, air, Tencent | 3D isovariant molecular map pre training









