以下的文章主要是介紹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強制有的列上設置同一個安全標記,把一個表作為一個整體和一個安全標記關聯,這樣節約了行級安全標記比較的時間開銷和存儲的空間開銷。
注意:一個表上只能有一個安全策略,一個列上也只能使用表中安全策略的一個標記,一個表上也只能有一個行級標記列。