以下的文章主要是介绍Oracle强制访问的控制模型的对比策略以及实际应用这一方面,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识。希望你能有所收获。
(1)用户安全标记
授予安全标记给用户时,同时可以指定访问权限。
- GRANT SECURITY LABEL DataAccess.ManagerLabel TO USER JOE FOR READ ACCESS;
有三类访问权限:READ ACCESS、WRITE ACCESS和ALL ACCESS。如果读写安全标记同时存在,必须满足如下条件:数组类型组件的值,两个安全标记中必须相同;集合类型组件的值,写访问权限安全标记必须包含于读Oracle强制访问权限安全标记中;树类型组件的值,写访问权限安全标记必须和读访问权限安全标记相同或者其子孙节点。
其中一个用户能被授予多个安全标记,但对于一个安全策略中的标记最多只能授予一个读访问权限安全标记和一个写Oracle强制访问权限安全标记。
(2)行级安全标记
使用安全标记在行级保护表。
以下是引用片段:
- CREATE TABLE T1 (
- A DB2SECURITYLABEL,
- B INTEGER,
- C CHAR(5))
- SECURITY POLICY DataAccess
DB2SECURITYLABEL是标记列的类型,实际内部处理为VARBINARY(128)。标记列隐含是NOT NULL WITH DEFAULT,默认值是用户的写安全标记。
(3)列级安全标记
使用安全标记在列级保护表。
以下是引用片段:
- CREATE TABLE T1 (
- A CHAR(8) SECURED WITH ManagerLabel,
- B INTEGER,
- C CHAR(5))
- SECURITY POLICY DataAccess
(4)表级安全标记
标记安全标记实际是利用列级安全标记实现。
以下是引用片段:
- CREATE TABLE T1 (
- A CHAR(8) SECURED WITH ManagerLabel,
- B INTEGER SECURED WITH ManagerLabel,
- C CHAR(5) SECURED WITH ManagerLabel)
- SECURITY POLICY DataAccess
在所Oracle强制有的列上设置同一个安全标记,把一个表作为一个整体和一个安全标记关联,这样节约了行级安全标记比较的时间开销和存储的空间开销。
注意:一个表上只能有一个安全策略,一个列上也只能使用表中安全策略的一个标记,一个表上也只能有一个行级标记列。
文章出自: http://www.programbbs.com/doc/class10-1.htm
【编辑推荐】