【数据库原理】(24)数据库安全性策略

news2024/11/18 10:30:06

数据库安全性是数据库管理系统(DBMS)中一个至关重要的方面。它指的是保护数据库免受非授权访问和恶意操作,包括数据泄露、修改、破坏等。

多层安全模型

在这里插入图片描述

在典型的计算机系统安全模型中,安全措施被设置在不同层级:

  1. 应用程序层:如数据库管理系统,实施特定的安全策略。
  2. 数据库管理系统层(DBMS):管理数据的访问权限,确保只有授权用户可以访问数据。
  3. 操作系统层:实施文件访问控制,保护数据库和其他系统文件。
  4. 物理存储层:保护数据不受物理威胁,如盗窃、灾害等。

安全性与数据库设计

  1. 设计阶段的考虑:在设计数据库时应考虑安全性需求,如哪些数据需要加密,哪些用户需要什么级别的访问权限。
  2. 动态安全策略:随着业务需求和安全威胁的变化,数据库的安全策略应该定期更新和修改。

安全策略的实施

  1. 用户身份验证:为了访问数据库,用户必须通过身份验证。这通常包括用户名和密码,但也可以包括生物识别技术。
  2. 访问控制:DBMS 根据预设的规则和策略管理用户对不同数据的访问权限。这包括读取、修改、删除等操作权限的控制。
  3. 审计与监控:跟踪和记录数据库活动,以便在出现安全问题时进行追踪和分析。
  4. 数据加密:敏感数据存储时采用加密技术,以防止未授权访问时数据泄露。

1.用户鉴定方法

  1. 用户的专门知识识别:用户通过知道的信息(如密码或安全问题的答案)来验证身份。
  2. 用户的特有知识识别:用户通过特定物件(如智能卡或安全令牌)来验证身份。
  3. 用户的个人特征识别:用户通过生物特征(如指纹、虹膜扫描或声音识别)来验证身份。

2.存取控制

在数据库管理中,存取控制是一个关键的安全措施,用来确保数据的安全性和完整性。这包括限制对敏感数据的访问,并确保只有授权用户能够进行特定的数据操作。以下是详细介绍数据库存取控制的各个方面。

2.1 存取控制机制的构成

存取控制机制主要包括两个部分:

  1. 定义用户权限:用户权限的定义和登记在数据字典中,通常由数据库管理系统(DBMS)提供的数据控制语言(DCL)实现。
  2. 权限检查:当用户发出数据操作请求时,DBMS会检查用户权限,确保请求不超出用户的授权范围。
2.2 存取控制机制的类别

大多数DBMS支持以下两种存取控制策略:自主存取控制和强制存取控制。

2.2.1自主存取控制(DAC)

在此策略下,用户可以根据需要将自己的访问权限转授给其他用户。这种方法灵活,但可能存在安全隐患。

主要通过SQL的GRANT(授权)和REVOKE(撤销授权)语句实现。

  • GRANT语句:授予用户特定的数据操作权限。
  • REVOKE语句:从用户撤销先前授予的权限。
2.2.2强制存取控制(MAC)

每个数据对象和用户都被分配一个安全级别。只有当用户的许可证级别高于或等于数据对象的安全级别时,用户才被允许访问数据。

在MAC中,数据对象和用户被分配安全等级和许可证。例如,安全等级可能包括“绝密”、“机密”等。用户只能访问等于或低于其许可证级别的数据。

自主与强制存取控制的结合

理想的安全系统应结合自主和强制存取控制,从而提供灵活性和安全性。用户不仅需要有适当的访问权限,还要符合强制存取控制的安全级别要求。

3.视图机制

视图机制在数据库中作为一种有效的存取控制工具,可以提供额外的安全层。通过定义不同用户的外模式,即创建视图,可以实现对敏感数据的保护。

  • 视图可以用作安全机制,因为它允许数据库管理员控制用户能够看到和操作的数据。
  • 例如,可以创建一个只显示特定列的视图,或者只显示满足特定条件的行。
  • 用户对视图的权限可以独立于基表。这意味着用户可能有权查询视图,但无权直接访问基表。

4.审计

审计是数据库安全性的关键组成部分,尤其在处理敏感或重要数据时尤为重要。审计追踪技术用于监测潜在的非法行为,并作为预防手段。

4.1 审计的目的
  • 检测安全漏洞:识别和记录任何可能的安全违规行为。
  • 责任归属:确定非法存取数据的人、时间和内容。
  • 数据恢复:在发生安全事件时,可利用审计日志来重建数据的历史状态。
4.2 审计功能
  • 审计功能通常在数据库管理系统(DBMS)中作为可选特性提供。
  • 审计追踪通常涉及将用户对数据库的所有操作记录到专用文件或数据库中。
  • 记录的操作可能包括数据查询、修改、删除等。
4.3 审计追踪的实现
  • 审计日志:所有数据库操作活动都被记录在日志文件中。这些日志详细记录了每个操作的时间、操作者、执行的操作以及操作的对象。
  • 审计工具:数据库管理员(DBA)使用专门的工具来分析审计日志,寻找异常或非法行为的迹象。
4.4 审计的开启与关闭
  • 由于审计功能可能会消耗大量的时间和空间资源,因此DBA可以根据安全需求和资源限制灵活地开启或关闭审计。
  • 在安全要求较高的环境中,如金融机构或政府部门,审计功能通常默认开启。
4.5 审计的挑战
  • 性能影响:审计可能会对数据库性能产生负面影响,尤其是在高并发或大数据环境下。
  • 数据管理:审计日志可能会迅速增长,需要有效的日志管理和分析策略。
  • 隐私保护:审计日志本身可能包含敏感信息,需要适当的保护措施。

5.数据加密

数据加密是数据库安全的关键方面,特别适用于处理高度敏感性的数据,如财务数据、军事数据和国家机密。这项技术通过将数据转换为无法辨认的形式,防止未授权用户的访问。

5.1 加密目的
  • 保密性:确保只有授权用户才能理解数据的真实含义。
  • 防止数据窃取:即使数据被非法访问或截取,未经授权的人也无法解读其内容。
5.2 数据加密过程
  • 加密:将明文数据转换为密文。这一过程需要使用加密算法和密钥。
  • 解密:将密文数据转换回明文。与加密相反,这一过程恢复数据的原始状态。
5.3 数据加密的实施
  • 许多数据库产品提供了数据加密例行程序,可以自动对存储和传输的数据进行加密。
  • 对于未直接提供加密功能的数据库产品,通常提供接口允许使用第三方加密程序。
  • 解密程序必须有适当的安全性保护措施,以确保加密的有效性。
5.4 数据加密的性能考虑
  • 加密和解密过程通常是资源密集型的,可能对系统性能产生影响。
  • 考虑到资源消耗和性能影响,数据加密通常作为可选功能,让用户根据需要选择是否加密数据。
  • 通常只对高度敏感的数据执行加密操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1378756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将.NET应用转换成Window服务

写在前面 本文介绍了将.NET8.0应用程序转换成Windows服务。 需要在NuGet中获取并安装:Microsoft.Extensions.Hosting.WindowsServices 包 代码实现 using System.Runtime.InteropServices; using WorkerService1;public class Program {public static void Main…

Vue+ElementUI+Axios实现携带参数的文件上传(数据校验+进度条)

VueElementUIAxios实现携带参数的文件上传(数据校验进度条) 可以实现对上传文件的类型,大小进行数据校验,以及对上传文件所要携带的数据也进行的校验,也有文件上传进度的进度条。 一、Vue 结构部分 弹窗显示&#xff0…

Jenkins 问题

从gitlab 仓库拉去代码到Jenkins本地报错 ERROR: Couldn’t find any revision to build. Verify the repository and branch configuration for this job. 问题原因: 创建条目》配置的时候,gitlab仓库不存在master分支 修复后:

[每周一更]-(第82期):认识自然处理语言(NLP)

GPT的大火,带起了行业内大模型的爆发;国内外都开始拥有或者研发自己的大模型,下边我们从NLP来进一步深入了解大模型、AI。 一、什么是NLP? 自然语言处理(英语:Natural Language Processing,缩…

2000年第五次人口普查数据,shp/excel格式均有,划分年龄段、性别占比等字段

基本信息. 数据名称: 第五次人口普查数据 数据格式: Shp、excel 数据时间: 2000年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源:第五次人口普查数据 数据字段: 序号字段名称字段说明1a2000_zrks2000年_常住人口(人&…

Pycharm close project 速度缓慢解决办法

解决Pycharm close project缓慢现象 1.问题描述 close project后需要等待很长的时间。 2.解决办法 在Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion 问题解决!!! 😃😃&#x…

C++(10)——模板

目录 1.什么是泛式编程以及模板的引入: 2. 模板: 2.1 函数模板: 2.2 类模板: 1.什么是泛式编程以及模板的引入: 在之前排序的部分中,为了完成某个特定功能,经常会用到交换函数,即…

Tensorflow2.0笔记 - 修改形状和维度

本次笔记主要使用reshape,transpose,expand_dim,和squeeze对tensor的形状和维度进行操作。 import tensorflow as tf import numpy as nptf.__version__#tensor的shape和维数获取 #假设下面这个tensor表示4张28*28*3的图片 tensor tf.rando…

Android代码混淆

Android之代码混淆 代码混淆的作用设置混淆1. 在模块目录下的 build.gradle 文件中配置以下代码2. 在 proguard-rules.pro 文件中添加混淆规则 通用混淆规则常用匹配符常用命令注意事项如何查看是否已混淆 代码混淆的作用 1.令 APK 难以被逆向工程,即很大程度上增加…

JVM 内存布局

内存区域分布介绍: jvm内存布局是理解Java应用程序运行时内存管理的重要一部分。JVM内存分为几个区域,每个区域有不同的作用。以下是JVM内存布局详细说明: JVM内存分布图: JVM内存区域详细说明: 方法区(M…

遥感影像-语义分割数据集:Landsat8云数据集详细介绍及训练样本处理流程

原始数据集详情 简介:该云数据集包括RGB三通道的高分辨率图像,在全球不同区域的分辨率15米。这些图像采集自Lansat8的五种主要土地覆盖类型,即水、植被、湿地、城市、冰雪和贫瘠土地。 KeyValue卫星类型landsat8覆盖区域未知场景水、植被、…

Docker之概述与安装

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Docker之概述与安装》。🎯&#x1f…

笔记系统的部署架构

前天给笔记系统打了0.0.3的tag,一个简单的全栈功能闭环基本完成。既然是开源,因此,这里有必要分享一下部署结构,希望能够获得小伙伴们的反馈。 目前整个系统采用docker容器来部署。应用介绍 auth_app: 登录/注册的前端应用 web_ap…

9个自媒体音频创作平台(附链接通道)

​划到最后“阅读原文” ——进入官网 Hi,我是胡猛夫,每天分享实用运营工具! 更多资源,更多内容,欢迎交流!公 号 | 微视角文化 》》精彩推荐 >>微视角文化知识库:移动的自媒体运营百科全…

【Python机器学习】深度学习——调参

先用MLPClassifier应用到two_moons数据集上: from sklearn.neural_network import MLPClassifier from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split import mglearn import matplotlib.pyplot as pltplt.rcParams[f…

UOS Python+Qt5实现声卡回路测试

1.回路治具设计: 2.Ui界面: 3.源代码: # -*- coding: utf-8 -*-# Form implementation generated from reading ui file SoundTestWinFrm.ui # # Created by: PyQt5 UI code generator 5.15.2 # # WARNING: Any manual changes made to this…

【VRTK】【Unity】【游戏开发】更多技巧

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 本篇将较为零散但常用的VRTK开发技巧集合在一起,主要内容: 创建物理手震动反馈高亮互动对象【创建物理手】 非物理手状态下,你的手会直接…

BikeDNA(四)初始化参考数据

BikeDNA(四)初始化参考数据 这本笔记本: 加载定义研究区域的多边形,然后为研究区域创建网格叠加。加载参考数据。处理参考数据以创建分析所需的网络结构和属性。 先决条件和条件 输入/输出 config.yml 必须提前设置。 此笔记本…

力扣|2023华为秋招冲刺

文章目录 第一关&#xff1a;2023 年 7 月面试题挑战第二关&#xff1a;2023 年 6 月面试题挑战第三关&#xff1a;2023 年 5 月面试题挑战 第一关&#xff1a;2023 年 7 月面试题挑战 class Solution { public:void reverseWord(vector<char>& s,int l,int r){for(i…

教程-右键用vscode(新窗口)打开文件或目录

通过本文可以提高效率&#xff0c;用起来更爽更高效。 本文实现了&#xff08;windows系统&#xff09;&#xff1a; 右键-用vscode(当前窗口)打开文件或目录右键-用vscode-新窗口打开文件或目录 注意&#xff1a; 下面的安装路径要更改为您实际的路径 具体配置步骤&#x…