Hi,我是无丶味,这篇博客是我对数据库安全性的一些总结以及记录一下我的学习。
记得养好好习惯:先赞后看

文章目录

  • 数据库安全性控制
    • 非法使用数据库的情况
    • 计算机系统的安全模型
    • 数据库管理系统安全性控制模型
    • 数据库安全性控制流程及常用方法:
      • ①用户标识和鉴定
      • ②存取控制
        • 自主存取控制
        • 强制存取控制
      • ③视图
      • ④审计
      • ⑤数据加密
    • 授权:授予与回收
    • 数据库角色

数据库安全性控制

非法使用数据库的情况

①编写合法程序绕过数据库管理系统及其授权机制
②直接或编写应用程序执行非授权操作
③通过多次合法查询数据库从中推导出一些保密数据

计算机系统的安全模型


系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统
数据库管理系统还要进行存取控制,只允许用户执行合法操作
操作系统有自己的保护措施
数据以密码形式存储到数据库中

数据库管理系统安全性控制模型

数据库安全性控制流程及常用方法:

①用户标识和鉴定

用户身份鉴别方法:
1.静态口令鉴别
2.动态口令鉴别
3.生物特征鉴别
4.智能卡鉴别

②存取控制

常用存取控制方法:

自主存取控制

通过 SQL 的GRANT 语句和REVOKE 语句实现
用户权限组成:数据对象、操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权

关系数据库系统中的存取权限

强制存取控制

强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
例如银行的高管可以看到别人的帐户余额,而不能修改余额
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
例如银行的员工可以修改余额,但不能看到余额

强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
实现强制存取控制时要首先实现自主存取控制
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
自主存取控制与强制存取控制共同构成数据库管理系统的安全机制

先进行自主存取控制检查,通过自主存取控制检查的数据对象再由系统进行强制存取控制检查,只有通过强制存取控制检查的数据对象方可存取。

③视图

④审计

⑤数据加密

防止数据库中数据在存储和传输中失密的有效手段

加密的基本思想
根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式­—密文(Cipher text)

加密方法:
1.存储加密
2.传输加密

存储加密:
①透明存储加密
内核级加密保护方式,对用户完全透明
将数据在写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密
数据库的应用程序不需要做任何修改,只需在创建表语句中说明需加密的字段即可
内核级加密方法: 性能较好,安全完备性较高
②非透明存储加密
通过多个加密函数实现

传输加密

链路加密:
在链路层进行加密
传输信息由报头和报文两部分组成
报文和报头均加密

端到端加密:
在发送端加密,接收端解密
只加密报文不加密报头
所需密码设备数量相对较少,容易被非法监听者发现并从中获取敏感信息

其他安全性保护
推理控制:
处理强制存取控制未解决的问题
避免用户利用能够访问的数据推知更高密级的数据

常用方法:
基于函数依赖的推理控制
基于敏感关联的推理控制

隐蔽信道:
处理强制存取控制未解决的问题

数据隐私保护:
描述个人控制其不愿他人知道或他人不便知道的个人数据的能力
范围很广:数据收集、数据存储、数据处理和数据发布等各个阶段

授权:授予与回收

1.GRANT
GRANT语句的一般格式:

 GRANT <权限>[,<权限>]... ON <对象类型> <对象名>[,<对象类型> <对象名>]…TO <用户>[,<用户>]...[WITH GRANT OPTION];

语义:将对指定操作对象的指定操作权限授予指定的用户

谁可以发出GRANT:
1.数据库管理员
2.数据库对象创建者(即属主Owner)
3.拥有该权限的用户

接受权限的用户 :
1.一个或多个具体用户
2.PUBLIC(即全体用户)

WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播

不允许循环授权

把查询Student表权限授给用户U1GRANT   SELECT ON   TABLE   Student TO   U1;
把对Student表和Course表的全部权限授予用户U2和U3GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;
把查询Student表和修改学生学号的权限授给用户U4GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;

2.REVOKE
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:

    REVOKE <权限>[,<权限>]... ON <对象类型> <对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

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

数据库管理员:
拥有所有对象的所有权限
根据实际情况不同的权限授予不同的用户

用户:
拥有自己建立的对象的全部的操作权限
可以使用GRANT,把权限授予其他用户

被授权的用户:
如果具有“继续授权”的许可,可以把获得的权限再授予其他用户
所有授予出去的权力在必要时又都可用REVOKE语句收回

数据库角色

数据库角色:被命名的一组与数据库操作相关的权限
角色是权限的集合
可以为一组具有相同权限的用户创建一个角色
简化授权的过程
1.角色的创建

CREATE  ROLE  <角色名>

例:

创建一个角色 R1:CREATE  ROLE  R1;

2.给角色授权

 GRANT  <权限>[,<权限>]… ON <对象类型>对象名  TO <角色>[,<角色>]…
使用GRANT语句,使角色R1拥有Student表的    SELECT、UPDATE、INSERT权限GRANT SELECT, UPDATE, INSERT ON TABLE Student TO R1;

3.将一个角色授予其他的角色或用户

GRANT  <角色1>[,<角色2>]…
TO  <角色3>[,<用户1>]…
[WITH ADMIN OPTION]
将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限GRANT  R1 TO 王平,张明,赵玲;

该语句把角色授予某用户,或授予另一个角色

授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION

指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色

一个角色的权限:直接授予这个角色的全部权限加上其他角色
授予这个角色的全部权限

4.角色权限的收回

REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
可以一次性通过R1来回收王平的这3个权限REVOKE  R1 FROM 王平;

用户可以回收角色的权限,从而修改角色拥有的权限
REVOKE执行者是
角色的创建者
拥有在这个(些)角色上的ADMIN OPTION

数据库安全性控制及控制流程和常用方法相关推荐

  1. 数据库安全性 --- 控制

    数据库安全性控制 一.用户身份鉴别(Identification & Authentication) 二.存取控制 三.自主存取控制方法 四.授权:授予与回收 1.GRANT: 2.REVOK ...

  2. 【数据库系统】数据库安全性控制

    数据库安全性控制的常用方法: 用户标识和鉴定 存取控制:自主存取控制和强制存储控制 (定义用户权限,并将用户权限登记到数据字典中 分为自主存取控制和强制存取控制) 视图技术 审计技术 数据加密存储和加 ...

  3. 数据库安全性控制(授权:授予与收回)

    数据库安全性控制章节敲代码准备工作: 1.更改认证方式,重启sql服务. 2.创建登录名.(安全性-登录名-新建登录名) 3.某个数据库安全性下创建用户. 4.连接. grant语句向用户授予权限,r ...

  4. 数据库系统概论——数据库安全性控制

    数据库系统概论--数据库安全性控制 层层设置 系统根据用户标识鉴别用户,只允许合法用户进入计算机系统 数据库管理系统进行存取控制,只允许用户合法操作 操作系统自身有保护措施 数据以密码形式存储到数据库 ...

  5. 数据库实验三-数据控制(安全性部分)

    数据控制(安全性部分) 实验环境:Windows 10操作系统.MySQL 8.0.Navicat 实验内容与完成情况: 一.实验目的 (1)熟悉通过SQL对数据进行安全性控制. (2)完成书本上习题 ...

  6. 数据库系统(三)——数据库安全性控制

    一.实验目的: 理解自主存取控制和视图机制在数据库安全性中的应用: 熟练掌握用户管理.授予权限.收回权限的SQL语句,并验证其有效性: 理解角色的作用,能够区分角色和用户. 二.实验内容: 针对不同用 ...

  7. 数据库防火墙——实现数据库的访问行为控制、危险操作阻断、可疑行为审计...

    转自百度百科 数据库防火墙系统,串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题,是一款基于数据库协议分析与控制技术的数据库安全防护系统.DBFirewall基于主动防御机制,实现数据 ...

  8. oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例

    本文主要向大家介绍了Oracle数据库之Oracle 重建控制文件一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 环境:OEL 5.7 + Oracle 10.2.0.5 ...

  9. scala(三):流程控制-分支控制、嵌套循环、for、while、do…while循环、循环中断、多支循环

    目录 流程控制 分支控制 嵌套分支 for循环控制 while和do-while循环控制 循环中断 多重循环 流程控制 分支控制 分支控制可以使程序有选择的执行,分支类型有:单分支.双分支.多分支 单 ...

  10. 案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,期限控制,参数调试等)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127669684 长期持续项目技术分享,有专业Qt需求请 ...

最新文章

  1. CircleProgressView
  2. 如何改变eclipse控制台编码
  3. python和什么一起学_[lvog1]和小菜一起学python(零基础开始学习)
  4. bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍
  5. iOS开发——手机号,密码,邮箱,身份证号,中文判断
  6. 04751计算机网络安全讲解,【19份】04751计算机网络安全自考试卷_历年真题自考答案及解析_湖南080901计算机科学与技术(原B080702计算机及应用)专业-自考生资料网...
  7. 征服 Redis + Jedis + Spring (一)—— 配置常规操作(GET SET DEL)
  8. 【渝粤教育】国家开放大学2018年春季 8618-21T燃气行业规范 参考试题
  9. 如何零基础入门产品经理
  10. 给Photoshop cc 2018添加简体中文语言包
  11. seafile专业版集成微软的office online实现在线协同编辑
  12. C++11_关键字_explicit
  13. 电脑开机时网络连接一直转圈,出现红叉
  14. pip runpy.py 报错 pip升级后问题及解决
  15. Gateway杂谈:线上引流和灰度发布
  16. C语言赋值表达式是从左到右还是从右到左执行?
  17. 百度周景博:POI知识图谱的构建及应用
  18. 因果分析系列6--相关,回归与因果
  19. 赏红叶,是金秋心旷神怡之事
  20. 技高一筹 行家妙招封堵USB泄密Vista数据

热门文章

  1. 南海云课堂春季11(T)K1 拓展:单调队列
  2. 终于有人把搜索引擎讲明白了
  3. springboot项目部署后项目启动慢
  4. pyinstaller 打包exe启动慢的问题
  5. 树莓派做百度云盘离线下载器BaiduPCS-Go web,树莓派与windows互传文件
  6. 进程调度案例分析:为何不能调度?
  7. cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
  8. lighttpd服务器搭建教程
  9. fastcgi php 进程用户 lighttpd,说说lighttpd的fastcgi
  10. 输出今天是星期几并计算n天后的日期(万年历)