数据库安全性控制

  • 一.用户身份鉴别(Identification & Authentication)
  • 二.存取控制
  • 三.自主存取控制方法
  • 四.授权:授予与回收
    • 1.GRANT:
    • 2.REVOKE
    • 3.创建数据库模式的权限
  • 五.数据库角色
    • 1.角色的创建
    • 2.给角色授权
    • 3.将一个角色授予其他的角色或用户
    • 4.角色权限的收回
    • 5.例子
  • 六.强制存取控制方法

1.非法使用数据库的情况
①编写合法程序绕过数据库管理系统及其授权机制;

②直接或编写应用程序执行非授权操作;

③通过多次合法查询数据库从中推导出一些保密数据。

2.计算机系统中,安全措施是一级一级层层设置。

①系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统;

②数据库管理系统还要进行存取控制,只允许用户执行合法操作;

③操作系统有自己的保护措施;

④数据以密码形式存储到数据库中。

3.存取控制流程
①首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。

②然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。

③还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。

4.数据库安全性控制的常用方法
①用户标识和鉴定;
②存取控制;
③视图;
④审计;
⑤数据加密。

一.用户身份鉴别(Identification & Authentication)

1.系统提供的最外层安全保护措施;

2.用户标识:由用户名和用户标识号组成。(用户标识号在系统整个声明周期内唯一)

3.用户身份鉴别的方法
①静态口令鉴别

静态口令一般由用户自己设定,这些口令是静态不变的。

②动态口令鉴别

口令是动态变化的,每次鉴别时需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法。

③生物特征鉴别

通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等。

④智能卡鉴别

智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能。

二.存取控制

1.存取控制机制组成
①定义用户权限,并将用户权限登记到数据字典中

a.用户对某一数据对象的操作权利称为权限。
b.DBMS提供适当的语言来定义用户权限,放在数据字典中,称作安全规则或授权规则。

②合法权限检查

a.用户发出存取数据库操作请求;
b.DBMS查找数据字典,进行合法权限检查。

2.用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统。

3.常用存取控制方法
①自主存取控制(DAC)

a.数据存取权限由用户控制,系统无法控制。
b.C2级。
c.用户对不同的数据对象有不同的存取权限。
d.不同的用户对同一对象也有不同的权限;
e.用户还可将其拥有的存取权限转授给其他用户。

②强制存取控制(MAC)

a.由系统控制,不是用户能直接感知或进行控制的。
b.B1级。
c.每一个数据对象被标以一定的密级。
d.每一个用户也被授予某一个级别的许可证。
e.对于任意一个对象,只有具有合法许可证的用户才可以存取。

三.自主存取控制方法

1.通过SQL的GRANT语句和REVOKE语句实现。

2.用户权限组成

a.数据对象;
b.操作类型。

3.定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作。

4.定义存取权限称为授权。

5.关系数据库系统中存取控制对象

四.授权:授予与回收

1.GRANT:

将对指定操作对象的指定操作权限授予指定的用户。

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

(1)能发出GRANT的对象:

a.数据库管理员;
b.数据库对象创建者(即属主Owner);
c.拥有该权限的用户。

(2)能按受权限的用户

a.一个或多个具体用户;
b.PUBLIC(即全体用户)。

(3)WITH GRANT OPTION子句

a.指定:可以再授予;
b.没有指定:不能传播;
c.不允许循环授权。

(4)例子
① 把查询Student表权限授给用户U1。

GRANT SELECT
ON TABLE Student
TO U1;

② 把对Student表和Course表的全部权限授予用户U2和U3。

GRANT ALL PRIVILIGES
ON TABLE Student,Course
TO U2,U3;

③ 把查询Student表和修改学生学号的权限授给用户U4。

GRANT UPDATE(Sno),SELECT
ON TABLE Student
TO U4;

对属性列的授权时必须明确指出相应属性列名。

④ 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户。

GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;

2.REVOKE

授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回。

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

(1)例子
①把用户U4修改学生学号的权限收回。

REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;

②收回所有用户对表SC的查询权限。

REVOKE SELECT
ON TABLE SC
FROM PUBLIC;

③把用户U5对SC表的INSERT权限收回。

REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;

a.将用户U5的INSERT权限收回的时候应使用CASCADE,因为用户U5有“WITH GRANT OPTION”权限,否则拒绝执行该行语句。
b.如果U6或U7还从其他用户处获得对SC表的INSERT权限,则它们仍具有此权限,系统只收回直接或间接从U5处获得的权限。

小结:

1.数据库管理员:

a.拥有所有对象的所有权限;
b.根据实际情况不同的权限授予不同的用户。

2.用户:

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

3.被授权的用户:

如果具有“继续授权”的许可,可以把获得的权限再授予其他用户。

4.所有授予出去的权力在必要时又都可以用REVOKE语句收回。

3.创建数据库模式的权限

(1)数据库管理员在创建用户时实现

CREATE USER < username >
[WITH] [DBA|RESOURCE|CONNECT];

①只有系统的超级用户才有权创建一个新的数据库用户;
②新创建的数据库用户有三种权限:CONNECT、RESOURCE、DBA。
③如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。

拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。

④拥有RESOURCE权限的用户能创建基本表和视图,称为所创建对象的属主。但不能创建模式,不能创建新用户。

⑤拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等。

DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。

五.数据库角色

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

1.角色的创建

CREATE ROLE <角色名>;

2.给角色授权

GRANT <权限>[,<权限>]…
ON <对象类型> 对象名
TO <角色>[,<角色>]…

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

GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]…
[WITH ADMIN OPTION]

①该语句把角色授予某用户,或授予另一个角色;
②授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION;
③指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色。

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

4.角色权限的收回

REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…

①用户可以回收角色的权限,从而修改角色拥有的权限;
②REVOKE执行者是:

a.角色的创建者;
b.拥有在这个(些)角色上的ADMIN OPTION。

5.例子

(1)通过角色来实现将一组权限授予一个用户:
①首先创建一个角色R1

CREATE ROLE R1;

②然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限:

GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1;

③将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限:

GRANT R1
TO 王平,张明,赵玲;

④可以一次性通过R1来回收王平的这三个权限:

REVOKE R1
FROM 王平;

(2)角色的权限修改
使角色R1在原来的基础上增加了Student表的DELETE权限。

GRANT DELETE
ON TABLE Student
TO R1;

六.强制存取控制方法

1.自主存取控制缺点
①可能存在数据的“无意泄露”;
②原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记;
③解决:对系统控制下的所有主客体实施强制存取控制策略。

2.强制存取控制(mandatory access control,MAC)
①保证更高程度的安全性;
②用户不能直接感知或进行控制;
③适用于对数据有严格而固定密级分类的部门:

军事部门、政府部门。

3.在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类。
①主体是系统中的活动实体

a.数据库管理系统所管理的实际用户;
b.代表用户的各进程。

②客体是系统中的被动实体,受主体操纵

文件、基本表、索引、视图。

4.敏感度标记(Label)
①对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。

②敏感度标记分为若干级别:

a.绝密(Top Secret,TS)
b.机密(Secret,S)
c.可信(Confidential,C)
d.公开(Public,P)
e.TS>=S>=C>=P

③主体的敏感度标记称为许可证级别(Clearance Level)

④客体的敏感度标记称为密级(Classification Level)

5.强制存取控制规则
①仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。

②仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。

6.强制存取控制MAC是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。

7.实现强制存取控制时要首先实现自主存取控制

原因:较高安全性级别提供的安全保护要包含较低级别的所有保护。

8.自主存取控制与强制存取控制共同构成数据库管理系统的安全机制。

9.DAC+MAC安全检查

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

数据库安全性 --- 控制相关推荐

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

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

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

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

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

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

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

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

  5. (数据库系统概论|王珊)第四章数据库安全性-第二、三、四、五、六节:数据库安全性控制

    文章目录 一:用户身份鉴别 (1)静态口令鉴别 (2)动态口令鉴别 (3)生物特征鉴别 (4)智能卡鉴别 二:存取控制 (1)自主存取控制DAC A:基本概念 B:GRANT与REVOKE ①:GRA ...

  6. 【思维导图总结——数据库系统概论】数据库安全性

    数据库安全性 数据库系统概论--数据库安全性 数据库安全性 一.数据库安全性概述 二.数据库安全性控制 (一).计算机的安全模型 (二).数据库安全性控制的常用方法 1.用户身份鉴别与存取控制 2.自 ...

  7. 4.0 《数据库系统概论》数据库安全性详解---(存取控制、DACMAC、视图机制、审计Audit....)

    文章目录 0.思维导图 1.数据库安全性概述 (1)为什么要研究数据库的安全性? (2)安全标准简介 ① TCSEC/TDI标准的基本内容 ② TCSEC/TDI安全级别划分 2.数据库安全性控制概述 ...

  8. 重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P28-P31,属教材"[第一篇 基础篇]"的&qu ...

  9. 【数据库系统设计】数据库安全性

    数据库安全性 4.1 数据库安全性概述 4.1.1 数据库的不安全因素 4.2 数据库安全性控制 4.2.1 用户身份鉴别 用户身份鉴别的方法 4.2.2 存取控制 4.2.3 自主存取控制方法 4. ...

最新文章

  1. 数据处理系列(四) 安装Elasticsearch用以存储和查询数据
  2. Windows Phone 7 不温不火学习之《项目模板》
  3. Replication--镜像+复制
  4. 尾递归调用 高阶函数 map filter reduce
  5. Android生存指南:解Bug策略和思路
  6. C语言求阶乘(附完整源码)
  7. 使用XMLHttpRequest实现AJAX
  8. 小微企业——信用风险与放款原则分析
  9. Android--List与ArrayList区别(转)
  10. [CMake] 配置 install 和 uninstall
  11. Swift的一些问题
  12. 国外大神一张图学会python-关于可以访问国外网站的浏览器的阿里云论坛用户知识和技术交流...
  13. ftp 上传下载整个目录
  14. 网络防火墙开发二三事
  15. 努比亚 N2(Nubia NX575J) 解锁BootLoader 并进入临时recovery ROOT
  16. linux查看docker是否启动命令行,如何通过命令行查看docker服务是否已启动
  17. 简化3D渲染和动画制作丨上海道宁为您带来强大的3D渲染软件——KeyShot
  18. 计算机房间墙壁的布置,房间小怎么布置 小房间布置有妙招
  19. 关于致命性自主武器系统的报告
  20. iPhone手机屏幕三种故障及维修方法

热门文章

  1. 将AE开发的专题图制作功能发布为WPS
  2. 传感器之方向:使用加速度传感器和地磁传感器共同实现
  3. speex进行音频去噪
  4. python基础编程简单案例:购买商品
  5. 如何做Code Review——读后感
  6. 4. “随机漫步的傻瓜--纳西姆.尼古拉斯.塔勒布”读后感
  7. 云豹POSPAL软件及硬件设置方法
  8. MySQL数据备份、恢复
  9. 什么是强化学习?强化学习之父:它是人工智能的未来
  10. 游戏行业网页整站模板下载_游戏 整站 高光 传奇 黑色