Oracle強(qiáng)制訪問的控制模型的實(shí)際應(yīng)用
以下的文章主要是介紹Oracle強(qiáng)制訪問的控制模型的對(duì)比策略以及實(shí)際應(yīng)用這一方面,如果你對(duì)其相關(guān)的實(shí)際操作有興趣了解的話,以下的文章將會(huì)給你提供相關(guān)的知識(shí)。希望你能有所收獲。
(1)用戶安全標(biāo)記
授予安全標(biāo)記給用戶時(shí),同時(shí)可以指定訪問權(quán)限。
- GRANT SECURITY LABEL DataAccess.ManagerLabel TO USER JOE FOR READ ACCESS;
有三類訪問權(quán)限:READ ACCESS、WRITE ACCESS和ALL ACCESS。如果讀寫安全標(biāo)記同時(shí)存在,必須滿足如下條件:數(shù)組類型組件的值,兩個(gè)安全標(biāo)記中必須相同;集合類型組件的值,寫訪問權(quán)限安全標(biāo)記必須包含于讀Oracle強(qiáng)制訪問權(quán)限安全標(biāo)記中;樹類型組件的值,寫訪問權(quán)限安全標(biāo)記必須和讀訪問權(quán)限安全標(biāo)記相同或者其子孫節(jié)點(diǎn)。
其中一個(gè)用戶能被授予多個(gè)安全標(biāo)記,但對(duì)于一個(gè)安全策略中的標(biāo)記最多只能授予一個(gè)讀訪問權(quán)限安全標(biāo)記和一個(gè)寫Oracle強(qiáng)制訪問權(quán)限安全標(biāo)記。
(2)行級(jí)安全標(biāo)記
使用安全標(biāo)記在行級(jí)保護(hù)表。
以下是引用片段:
- CREATE TABLE T1 (
- A DB2SECURITYLABEL,
- B INTEGER,
- C CHAR(5))
- SECURITY POLICY DataAccess
DB2SECURITYLABEL是標(biāo)記列的類型,實(shí)際內(nèi)部處理為VARBINARY(128)。標(biāo)記列隱含是NOT NULL WITH DEFAULT,默認(rèn)值是用戶的寫安全標(biāo)記。
(3)列級(jí)安全標(biāo)記
使用安全標(biāo)記在列級(jí)保護(hù)表。
以下是引用片段:
- CREATE TABLE T1 (
- A CHAR(8) SECURED WITH ManagerLabel,
- B INTEGER,
- C CHAR(5))
- SECURITY POLICY DataAccess
(4)表級(jí)安全標(biāo)記
標(biāo)記安全標(biāo)記實(shí)際是利用列級(jí)安全標(biāo)記實(shí)現(xiàn)。
以下是引用片段:
- CREATE TABLE T1 (
- A CHAR(8) SECURED WITH ManagerLabel,
- B INTEGER SECURED WITH ManagerLabel,
- C CHAR(5) SECURED WITH ManagerLabel)
- SECURITY POLICY DataAccess
在所Oracle強(qiáng)制有的列上設(shè)置同一個(gè)安全標(biāo)記,把一個(gè)表作為一個(gè)整體和一個(gè)安全標(biāo)記關(guān)聯(lián),這樣節(jié)約了行級(jí)安全標(biāo)記比較的時(shí)間開銷和存儲(chǔ)的空間開銷。
注意:一個(gè)表上只能有一個(gè)安全策略,一個(gè)列上也只能使用表中安全策略的一個(gè)標(biāo)記,一個(gè)表上也只能有一個(gè)行級(jí)標(biāo)記列。
文章出自: http://www.programbbs.com/doc/class10-1.htm
【編輯推薦】