Oracle强制访问与控制功能的解析
创始人
2024-06-28 16:30:47
0

Oracle强制访问控制就是B1级安全产品所必须实现的一个相关的基本安全的特性,我们都知道达梦的相关数据库安全版的强制访问以及控制功能,它在实现过程中研究并吸取了现有主流数据库产品的部分安全实现机制,包括DB2的LBAC(Label Based Access Control)和Oracle的LABEL SECRURITY。

下面将从标记安全的六个方面对DB2、Oracle和DM的模型进行描述,这个六个方面分别是:安全元素、策略应用、访问规则、访问特权、系统冲突、系统权限。

1 DB2 LBAC

1.1安全元素

(1)安全标记组件

支持三种类型的组件:数组、集合和树型。

a)创建数组组件

 

  1. CREATE SECURITY LABEL COMPONENT level ARRAY 
    [ ’Top Secret’, ’Secret’, ’Employee’, ’Public’ ] 

b)创建集合组件

 

  1. CREATE SECURITY LABEL COMPONENT project 
    Set ={’A’, ’B’, ’C’, ’D’} 

c)创建树型组件

 

  1. CREATE SECURITY LABEL COMPONENT department 
    Tree={’G1’ ROOT, ’G2’ UNDER ’G1’, ’G2’ UNDER ’G1’} 

其中每个元素的名称不能超过32个字节,且同一组件内名称不能重复;数组最多可以包含65535个元素,集合和树型最多能包含64个元素。

(2)安全策略

创建一个安全策略:

 

  1. CREATE SECURITY POLICY DataAccess COMPONENTS level,department WITH DB2LABCRULES 

定义一个策略要指定标记组件和访问规则。每个策略最多只能包含16个标记组件。系统现在只支持一中Oracle强制访问规则DB2LABCRULES,这个在访问规则小节中详细讲述。

(3)安全标记

创建一个安全标记:

以下是引用片段:

  1. CREATE SECURITY LABEL DataAccess.ManagerLabel COMPONENT level ’secret’   
  2. project ’A’, ’B’, ’C’   
  3. department ’G1’;  

安全标记可以应用到用户、行和列上。在插入数据时,也可以指定直接指定安全标记串,规则为按策略中组件的顺序,依次指定组件值,同一个组件的不同值用逗号隔开,不同组件之间用冒号隔开。

1.2策略应用

(1)用户安全标记

授予安全标记给用户时,同时可以指定访问权限。

 

  1. GRANT SECURITY LABEL DataAccess.ManagerLabel TO USER JOE FOR READ ACCESS; 

有三类访问权限:READ ACCESS、WRITE ACCESS和ALL ACCESS。如果读写安全标记同时存在,必须满足如下条件:数组类型组件的值,两个安全标记中必须相同;集合类型组件的值,写访问权限安全标记必须包含于读访问权限安全标记中;树类型组件的值,写访问权限安全标记必须和读访问权限安全标记相同或者其子孙节点。

其中一个用户能被授予多个安全标记,但对于一个安全策略中的标记最多只能授予一个读Oracle强制访问权限安全标记和一个写访问权限安全标记。

(2)行级安全标记

使用安全标记在行级保护表。

以下是引用片段:

  1. CREATE TABLE T1 (   
  2. A DB2SECURITYLABEL,   
  3. B INTEGER,   
  4. C CHAR(5))   
  5. SECURITY POLICY DataAccess  

DB2SECURITYLABEL是标记列的类型,实际内部处理为VARBINARY(128)。标记列隐含是NOT NULL WITH DEFAULT,默认值是用户的写安全标记。

(3)列级安全标记

使用安全标记在列级保护表。

以下是引用片段:

  1. CREATE TABLE T1 (   
  2. A CHAR(8) SECURED WITH ManagerLabel,   
  3. B INTEGER,   
  4. C CHAR(5))   
  5. SECURITY POLICY DataAccess  

(4)表级安全标记

标记安全标记实际是利用列级安全标记实现。

以下是引用片段:

  1. CREATE TABLE T1 (   
  2. A CHAR(8) SECURED WITH ManagerLabel,   
  3. B INTEGER SECURED WITH ManagerLabel,   
  4. C CHAR(5) SECURED WITH ManagerLabel)   
  5. SECURITY POLICY DataAccess  

在所有Oracle强制访问的列上设置同一个安全标记,把一个表作为一个整体和一个安全标记关联,这样节约了行级安全标记比较的时间开销和存储的空间开销。

注意:一个表上只能有一个安全策略,一个列上也只能使用表中安全策略的一个标记,一个表上也只能有一个行级标记列。
 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...