浅道数据库的安定守卫

  • A+
所属分类:安全防护
Tag:  安全防护数据库的安全性是指保护数据库以防止非法使用造成数据泄露,更改、或者破坏。 实际上,如上图,安全性问题不是数据库啊系统独有的,所有计算机系统都存在这个问题。 (1)用一
浅道数据库的安定守卫

浅道数据库的安定守卫

  数据库的安全性是指保护数据库以防止非法使用造成数据泄露,更改、或者破坏。

  实际上,如上图,安全性问题不是数据库啊系统独有的,所有计算机系统都存在这个问题。

  (1)用一个用户名或者用户标识符来表明用户的身份,系统以此来鉴别用户的合法性。

  (2)常采用用户名(username)和口令(password)相结合的方法,系统通过和对口令来判断用户身份的线)在鉴别用户的身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数来计算,系统根据计算结果来判断用户身份的合法性。

  在数据库的系统中,定义用户的存取权限称为授权。系统权限是由DBA授予用户的。对象权限是由DBA或者数据库的创建者授予。

  通过视图机制将要保密的数据对无权限存取这些数据的用户隐藏起来,从而自动的实现对数据库的一定程度的安全性保护。

  加密的基本思想是,根据一定的算法将原始数据加密成不可直接识别的格式,数据以米文德格式存储和传输。

  使用审计功能将用户对数据库的所有操作自动的记录下来,存放在特殊的文件中,即审计日志。

  2.约束条件。规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。

  3.违约响应。规定系统如果发现用户发出的操作请求违背了完整性约束条件,应该采取一定的动作来保证数据库的完整性,即违约时要做的事。

  (1)立即执行约束。在执行用户事务过程中,某一条语句执行完毕后,系统立即对数据的完整性进行检查。

  (2)延迟执行约束。在整个事务执行结束后,在对约约束条件进行完整性检查,结果正确才能提交。

  如果发现用户的操作违背了立即执行约束,则可以拒绝该操作,以保证数据库的完整性。但是如果发现用户的操作违背了延迟性执行约束,而又不知道是事务的哪个操作破坏了完整性,则只能拒绝整个事务,将数据库恢复到该事务执行前的初始状态。

  对数据库的每一个确定转态所应满足的条件,是反映数据库状态的合理性的约束。

  数据库从一种状态转换成另一种状态时,新旧之间应该满足的约束条件,动态约束条件反映的是数据库状态变迁的约束。

  串行操作意味着其他用户必须等到这个用户结束才能对数据库进行存取操作,如果一个用户涉及到大量数据的输入输出操作,则数据库大部分时间处于闲置的状态。因此,为了充分的利用数据库的资源。很多时候,数据库用户都是对数据库并行存取数据的,这样就会发生对个用户并发的存取同一数据的情况。如果对并发操作不加以控制,可能会产生不正确的数据,破坏数据库的完整性。

  一个事务是一个不可分割的工作单位,在事务执行时,要么不做,要么全做,不允许完成部分事务。即使因为故障的原因而使事务未能完成,它执行过的事务也将会被取消。

  事务对数据库的作用是数据库从一个一致状态转变到另一个一致状态。所谓的数据库的一致状态就是指数据库中的数据满足完整性约束条件。

  如果多个事务并发的执行,应该像多个事务单独的执行一样,一个事务的执行不能被其他事务所干扰。

  持久性是指一个事务一旦被提交它对数据库中数据的改变就是持久的,即使数据库因故障而受到破坏,DBMS也应该能够恢复。

  所谓的封锁技术就是当一个事务在对某个数据对象(可以是数据项、数据记录、数据集或者整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的一致性和正确性。

  又称写封锁,简称X封锁。采用的原理是禁止并发性操作。当事务T对某个数据对象R实现X封锁的后,其他事务要等T解除X封锁之后,才能对R进行封锁。

  又称读封锁,简称S封锁。采用的原理是允许其他事务对同一数据对象进行查询,但是不能对该数据对象进行修改。即当事务T对数据对象R加S封锁的后,其他事务只能对R数据对象加S锁而不能加X锁,直到T释放R上的S锁。

  封锁协议对封锁方式规定不同的规则。在不同的程度上对正确控制并发操作提供了一定的保证。

  在一级封锁协议的基础之上另外加上事务T在读取数据R之前必须先对其加S锁,读完后释放S锁。

  在一级封锁协议的基础之上,另外加上事务T在读数据R之前必须加上S锁,读完后不释放S锁,直到事务T结束之后才释放。

  封锁粒度是封锁的单位。根据对数据对象的不同处理,封锁的对象可以是这样的一些逻辑单元:字段,记录,表和数据库等。封锁的数据对象大小称为封锁粒度。

  封锁粒度越小,系统中能够被封锁的对象就越多,并发度就越高,但是封锁机构越复杂,系统的开销就越大。相反,封锁粒度越大,系统中能呗封锁的对象就越少,并发度就越低,封锁机构简单,相应系统的开销就小。

  当某个事物对某一数据进行排他型封锁的时候,由于其他事物对该数据的操作而使得这个事物处于永久等待状态这种状态称为活锁。

  避免活锁的简单方法就是采用先来先服务的策略。按照请求封锁的次序对事物排队。

  在同时处于等待状态的两个或者多个事务中,其中的每一个在它能够进行之前,都等待着某个数据,而这个数据已被他们中的某个事物封锁,这种状态称为死锁。

  b.不可抢占条件:一个数据对象只能被所占有它的事务所释放,不能被其他事物所释放。

  c.部分分配条件:一个事务已经封锁给它的数据对象,但任然要求封锁其他数据

  d.循环等待条件“允许等待其他事务释放数据对象,系统处于加锁请求相互等待转态。

  每个事务必须将所有要用到的数据一次加上锁,并要求加锁成功,只要有一个加锁失败,表示本次加锁失败,并且释放所有加锁成功的数据对象,然后重新开始加锁。

  一次加锁扩大了加锁的范围,虽然可以有效地预防死锁,但是降低了系统的并发度。

  预先对所有可加锁的数据对象规定一个加锁顺序,每个事务都需要按照此顺序加锁,在释放的时候按照逆序进行。

  数据库中任何被破坏或者不正确的数据都可以利用存储在其他地方的冗余数据来修复。所以数据库恢复系统应该提供两种功能,即冗余数据的生成和冗余重建

  日志文件是用来登记事务对数据库更新操作的文件。对数据库的每次的修改,都会将被修改项目的旧值和新值写在一个叫做运行日志的文件中,目的是为数据库的恢复保留详细的数据。

  (1)至少要等到相应的运行记录撤销部分已经写入日志文件中以后,才允许改啊事务向物理数据库写入记录。

  (2)直到事务所有运行记录的撤销和重做两部分都已经写入日志文件以后,才允许事务完成提交处理。

  为了消除该事务对数据库的影响,要利用日志文件中记载的信息强行回滚该事务,将数据库恢复到初始转态。这类恢复操作叫做事务撤销,具体做法

  (1)一些未完成的事物对数据库的更新一写入数据库,这样,系统重启之后要强行撤销未完成的事务,清除事务对数据库做的修改。

  (2)已提交的事务对数据库的更新结果还保留在缓冲区中,尚未写到磁盘的物理数据库中,这也使得数据库处于不一致的状态中。

  因此,在恢复方面,既要撤销所有未完成的事务,还要重做所有已经提交的事务。

  (1)正向扫描日志文件,查找尚未提交的事务,将其事务标识计入撤销队列。同时查找已经提交的事务将其事务标识计入重做队列。

  我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记...博文来自:

  很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~一、介绍开发语言:C语言开发工具:Dev-C++5.11日期:2019年9...博文来自:

  作者:阿波、纯洁的微笑漫画:宁州枪手程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的:程序员都是秃头,秃的越狠越......博文来自:

  据说中台凉了?唔,线分钟TL;DR(toolongdontread)1、业务中台就是流程模板+扩展点2、没法很好抽象就别做中台,没那么多需求和业务线就别做中台。很多同学都会问,啥叫中台,...

  阅读数 2万+这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手/右手有节...

  阅读数 2万+提问:西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么?为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。高层领导:观音项目经理:唐僧...

  阅读数 1万+大数据学习之Linux基础自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令的...

  阅读数 2万+史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。...

  阅读数 1万+昨天在网上发现了一个非常方便的天气API,就用Python试着用了一下。参数是挺少的,用起来也方便,但是那个城市代码确实是搞了我好长时间。一、介绍我们先来看一下实现的程序有什么功能:功能也是非常简单的...

  阅读数 1万+在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点 shell脚本? 在...

  写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不...

  今天给大家带来点快乐,程序员才能看懂。 来源:公司实习生找 Bug 2.在调试时,将断点设...

  关于基础 项目打算招聘一个自动化运维,主要需求是python、Linux与shell脚本能力。但面试几天发现一些问题: 简历虚假 这个不管哪行,简历含水量大都是普遍存在的,看简历犀利的一比,一面...

  Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。...

  文章目录前言下载免费高清大图下载带水印的精选图代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的...

  作者 小鹿 来源 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握...

  在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者 Dylan Mestyanek译者 弯月,责编 屠敏出品 ......

  项目需求: 实现一个简单的飞机大战程序,当消灭掉一个小飞机的时候的5分,当消灭掉一个小蜜蜂的时候有可能火力值增加24也有可能生命值增加1,如果打飞机也就是英雄机和敌人(蜜蜂+小飞机)碰撞之后...

  前言 工欲善其事 必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这...

  “一个程序员写了个爬虫程序,整个公司200多人被端了。” “不可能吧!” 刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。...

  1024程序员的节日就要来了,作者也挤时间写了一篇文章——《我与CSDN的这十年》,分享下程序猿和程序媛的故事,纪念这十年奋斗和感动的日子。十年, 说长不长,说短不短,人生进度条的八分之一,都是青春,...

  什么是反向代理? 1、有两台服务器A和B属于同一内网段,但是A不通外网,B通外网,客户端C只有外网 2、C想通过B访问A,就需要在服务器B上做反向代理 3、客户端C通过外网与服务器B通信,服务器B通过...

  三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!10-17

  引言 大家好,我渣渣烟。我曾经写过一篇《面试官:谈谈你对表设计的认识?》于是呢,决定再来一个mysql的数据库专题,这篇我们就来谈谈关于索引方面的mysql面试题。还是老规矩,讲的是在Innodb存...

  前言郑重声明:本文不是 Podman 的入门篇,入门请阅读这篇文章:再见 Docker,是时候拥抱下一代容器工具了Podman 原来是 CRI-O 项目的一部分,后来被分......

  人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员【臭鸡蛋...

  我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,...

  文章目录目录结构bin目录conf目录lib目录webapps目录temp目录 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很...

  对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。 我...

  目录 一、简介 二、基本模型 BSON 数据类型 分布式ID 三、操作语法 四、索引 索引特性 索引分类 索引评估、调优 五、集群 分片机制 副本集 六、...

  欢迎关注“技术领导力”博客,每天早上8:30推送 “你交代一下,总共抓了多少数据,在哪些网站抓的,数据干什么用了?看看够在里面呆几年。。。”警察语气凝重地对张强说。 程序员张强(化名),回...

  Python 学习笔记(基础) 文章目录Python 学习笔记(基础)0. 简介Python 编程第一步模块与包错误和异常注释1. 数据类型与运算符数据类型操作符2. 控制流分支语句循环语句3. 函数...

  周末了,就不分享技术干货了,闲扯一篇。最近一直发力写原创公众号文章,随便一篇文章最少需要2到5小时,一周更新5到7篇,很累的。但看到努力被大家认可,粉丝不断的增加,感觉也值了。后续继续为大家分享原创干...

  闲着无聊写了一个简易的恶搞小程序,大家看看就好,不要用来做坏事哦。 使用方式: 安装python环境。 编写脚本。 打包成exe文件。 安装python环境我就不过多的介绍了,网上有很多教程,下面...

  Jsp老师布置的一个作业,提供了几个题目,让我们用Jsp实现一些简单的功能,新手上路,做的比较菜,如果大家有需要的欢迎大家浏览,如果觉得我的代码里面有什么错误清大家指正,感谢! 目录 一、登录界面...

  本文主要介绍面试过程经常问的Spring相关知识,通过阅读本文,你将掌握以下10点 1.使用Spring框架的好处是什么? 2. ApplicationContext通常的实现是什么? 3.什么是S...

  正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以。我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎...

  我相信很多人觉得自己的职称,是会随着工作年限的增长而相应的提升,一年左右初级开发,两到三年中级,三到四年中高级,五年以上高级开发,当然,如果规划好自己职业生涯的小伙伴,基本都能根据这个对号入座,但是,...

  Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。 楔子-JVM内存结构补充 在上篇《JVM之内存结构详解》中有些内容我...

  最近很多学习java的小白问我字串相关的问题,觉得很有必要整理下,以方便初学者理解字符串以及应对今后面试中考官的提问。...

  整理了一些逻辑推理题,这些逻辑推理题能够提高大家的逻辑思考能力,同时也能给大家的学习带来一定的趣味性。希望大家看到题之后,不要着急看答案,要先独立思考解决。答案的获取可以关注我的公众号:[Albert...

  loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废......

  c#网络摄像头图像处理c#如何与redis通讯c#代码设置excelc# u盘使用记录

  爬取豆瓣正在上映的电影:[reply][/reply] 问题已解决,谢谢呀

  • 版权声明:本站文章于2019-10-29 09:35,互联网采集,如有侵权请发邮件联系我们,我们在第一时间删除。
  • 转载请注明:浅道数据库的安定守卫