数据库基础概论_数据库的安全性控制

(1)数据库安全性的含义

数据库的安全性指的是DBMS应该保证的数据库的一种特性(机制或者手段):免受非法、非授权用户的访问,泄露、破坏或更改。

(2)数据库安全性管理涉及的方面:

社会法律和伦理、公共政策或者制度、安全策略 数据的安全级别

数据的安全级别:绝密、机密、可信、和无分类

数据库系统DBS的安全级别: 物理控制、网络控制、操作系统控制或者DBMS控制

(3)DBMS的安全机制:

自主安全性机制:存取控制(ACCESS CONTROL)

通过权限在用户之间的传递,使用户自主管理数据库的安全性

强制安全性机制:

通过对数据和用户强制分类,使得不同类别的用户能够访问不同类别的数据

推断控制机制:

防止通过历史信息,推断出不该被知道的信息

防止通过共公开信息(通过聚集信息)推断出私密信息。通常在一些由个体数据组成的公共数据库中此问题尤为突出

数据加密存储机制

通过加密解密保护数据,秘钥。加密、解密方法与传输。

(4)DBA管理员的责任和义务

(1)熟悉相关的法规、政策,协助组织的决策者制定好相关的安全策略

(2)规划好安全控制保障措施,例如,系统安全级别、不同级别上的安全控制

措施,对安全遭破坏的响应,

(3)划分好数据的安全级别以及用户的安全级别

(4)实施安全性控制:DBMS专门提供一个DBA账户,该账户是一个超级用户

或称系统用户。DBA利用该账户的特权可以进行用户账户的创建以及权限授

予和撤消、安全级别控制调整等

 

数据库自主安全性机制的实现:通过自主安全性是通过授权实现的。DBMS允许数据库管理员利用DCL语言定义一些安全性控制规则,当有DB访问操作时,DBMS自动按照安全性控制规则进行检查,检查通过则允许访问,不通过你则不允许访问。

数据库自主安全性访问规则:

DBMS将权利和用户(账号)结合在一起,形成一个访问规则表,依据该规则表可以实现对数据库的安全访问控制。

·············································数据库基础概论_数据库的安全性控制_第1张图片

自主安全性的实现方式

  1. 存储矩阵:将权限信息放入矩阵中
  2. 视图。视图是安全性控制重要手段 通过视图可以限制用户对某些数据项的存取(通过视图可以将数据访问对象和谓词结合起来,限制用户对关系中的某些元组的存取)

注:用户定义视图之后,视图便成为一新的数据对象,参与到存储矩阵与能力表中进行描述

(5)SQL安全性机制

(1)SQL语言的用户和权利

SQL语言包含了DDL/DML 和DCL数据库安全控制属于DCL范畴。

关系级别(普通用户)、账户级别(程序员用户)超级用户(DBA)

级别1:READ;

级别2:Insert Update Delete 元组数据

级别3:CREATE 创建表空间、模式、表、索引、视图ALTER、 Drop等

注:级别高的权利自动包含级别低的权利。如某人拥有更新的权利,它也自动拥有读的权利。在有些DBMS中,将级别3的权利称为账户级别的权利,而将级别1和2称为关系级别的权利。

(2)SQL-DCL的命令及其应用

授权:

GRANT {all PRIVILEGES | privilege {,privilege…}}

ON [TABLE] tablename | viewname

TO {public | user-id {, user-id…}}

[WITH GRANT OPTION];//是否允许将权利授予别人

 user-id ,某一个用户账户,由DBA创建的合法账户

 public, 允许所有有效用户使用授予的权利

 privilege是下面的权利: SELECT | INSERT | UPDATE | DELETE | ALL PRIVILEDGES

 WITH GRANT OPTION选项是允许被授权者传播这些权利

示例

假定高级领导为Emp0001, 部门领导为Emp0021, 员工管理员为Emp2001,

收发员为Emp5001(均为UserId, 也即员工的P#)

Grant All PriviledgesON Employee TO Emp2001;

Grant SELECT ON EmpV2 TO Emp5001 ;

Grant SELECT ON EmpV3 TO public;

Grant SELECT ON EmpV4 TO Emp0021;

注:授予视图访问的权利,并不意味着授予基本表访问的权利(两个级别:基本

关系级别和视图级别)

注:授权者授予的权利必须是授权者已经拥有的权利

收回授权

收回授权命令

REVOKE {all privilEges | priv {, priv…} } ON tablename | viewname

FROM {public | user {, user…} };

示例

revoke select on employee from UserB;

自主安全性的授权过程及其问题

授权过程:(1)DBA创建DB 并为每一个用户创建一个账户

(2)DBA授予某用户账户级别的权利

  1. 具有账户级别的用户可以创建基本表和视图,它也自动成为该表、该视图的属主账户。
  2. 拥有属主账户的账户可以将其中的以部门权利进一步的授权给另外的用户。这样用户的权利将不断地传递下去

因而需要注意的问题是:要控制授权用户的传播范围。

强制安全性机制

强制安全性对数据对象进行安全性分级

:绝密、机密、可信、无分类、

同时对用户也进行上述的安全性分级

从而强制实现不同级别用户访问不同级别数据的一种机制。

访问规则:低级别用户不能修改高级别数据 高级别用户不能修改低级别数据(修改之后,低级别用户没办法访问)

强制安全性机制的实现

DBMS引入强制安全性机制,可以通过扩展关系模式来实现。给每个关系元组增加安全分级。

注:强制安全性机制使得关系形成多级关系。(不同级用户看到不同的关系子集)也出现多重示例,多级关系完整性等问题或者新的处理技巧。

你可能感兴趣的:(数据库)