• 数据库安全性


    1 计算机安全性

          为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
          计算机系统安全性问题主要分为以下三类:

    • 技术安全类
    • 管理安全类
    • 政策法规类

    2 数据库安全控制

          问题:数据库的一大特点是数据可以共享,数据共享必然带来数据库的安全性问题,数据库系统中的数据不能是无条件的共享。 如:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等。
          计算机系统中,安全措施是一级一级层层设置的
    计算机系统的安全模型      数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 系统安全保护措施是否有效是数据库系统的主要性能指标之一。
    安全性控制的常用方法有如下几种:

    • 用户身份鉴别(通过标识和口令)
    • 存取控制
    • 视图
    • 审计
    • 加密
    • SQL注入

    2.1 存取控制

    存取控制机制组成分两部分:定义用户权限、合法权限检查,用户权限定义和合法权检查机制组成了DBMS的安全子系统
    常见的存取控制方法有如下两种:

    • 自主存取控制(Discretionary Access Control—DAC):C2级,灵活:GRANT REVOKE
    • 强制存取控制(Mandatory Access Control— MAC): B1级,严格:对各用户与表定义密级

    GRANT语法

           GRANT <权限>[,<权限>]... 
           [ON <对象类型> <对象名>]
           TO <用户>[,<用户>]...
           [WITH GRANT OPTION];
    
    • 1
    • 2
    • 3
    • 4

    将对指定操作对象的指定操作权限授予指定的用户[WITH GRANT OPTION:将允许用户将其权限分配给他人]

    [例1] 把查询Student表权限授给用户U1
    GRANT SELECT
    ON TABLE Student
    TO U1;
    [例2] 将角色r_xujin授权给用户xujin
    GRANT r_xujin to xujin;
    [例3] 授予角色 r_test 对 Sales.Orders 表的 SELECT 权限
    GRANT SELECT ON Sales.Orders TO r_test

    REVOKE语法

          REVOKE <权限>[,<权限>]... 
          [ON <对象类型> <对象名>]
          FROM <用户>[,<用户>]...;
    
    • 1
    • 2
    • 3

    [例4] 把用户U4修改学生学号的权限收回
    REVOKE UPDATE(Sno)
    ON TABLE Student
    FROM U4;

    2.2 审计控制

    什么是审计?

    审计日志(Audit Log)
    将用户对数据库的所有操作记录在上面

    DBA利用审计日志
    找出非法存取数据的人、时间和内容

    审计分类
    用户级审计
    针对自己创建的数据库表或视图进行审计
    记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
    系统级审计 :DBA设置
    监测成功或失败的登录以及其他数据库级要求 ;监测GRANT和REVOKE操作权限下的操作

    [例15] 对修改SC表结构或修改SC表数据的操作进行审计
    AUDIT ALTER, UPDATE
    ON SC
    [例16] 取消对SC表的一切审计
    NOAUDIT ALTER, UPDATE
    ON SC

    2.3 加密

    2.3.1 对称密钥加密

    在这里插入图片描述

    2.3.2 非对称密钥加密

    在这里插入图片描述

    2.3.3 凭证加密

    在这里插入图片描述

    2.3.4 密码短语加密

    在这里插入图片描述

    2.4 SQL注入

          所谓SQL注入,就是通过把SQL命令插入到表单窗体递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行一些恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。

    【习题】试述实现数据库安全性控制的常用方法和技术有哪些?

    答:实现数据库安全性控制的常用方法和技术有:
    ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
    ( 2 )存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
    ( 3 )视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
    ( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
    ( 5 )数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

  • 相关阅读:
    OpenCV图像处理、计算机视觉实战应用
    支付宝H5支付
    损失函数篇 | YOLOv8 更换损失函数之 MPDIoU | 《2023 一种用于高效准确的边界框回归的损失函数》
    读书笔记《Spring Boot+Vue全栈开发实战》(下)
    计算机毕业设计python基于django租房系统-房屋租赁系统
    【C++】使用红黑树进行封装map和set
    进程间通信-内存映射二
    深度学习提高模型准确率方法
    Android SIP软电话,通话录音,VoIP电话,linphone电话
    苞米豆的多数据源 → dynamic-datasource-spring-boot-starter,挺香的!
  • 原文地址:https://blog.csdn.net/weixin_37624828/article/details/126296354