共計 4480 個字符,預計需要花費 12 分鐘才能閱讀完成。
這篇文章主要為大家展示了“Oracle Vault 是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“Oracle Vault 是什么”這篇文章吧。
Oracle 數據庫作為目前最成熟的商業數據庫,在穩定其核心功能的同時也針對數量眾多的用戶群提出了很多安全運維工具解決方案。在數據層面,Oracle 有三個代表新的技術:Virtual Private Database(VPD)、Label Security 和 Oracle Vault。VPD 主要是針對解決應用層面的數據訪問需求添加數據訪問權限,Label Security 是 VPD 某種程度的拓展升級。而 Vault 主要是對 Oracle 數據庫的安全職責進行分離,將數據安全責任從用戶甚至 sys 身上剝離出去,進行細粒度的安全責任分配。
1、Oracle Vault 簡述
Oracle Vault 是官方推薦的 security 策略之一,它主要用于運維機構中對數據的保護。傳統意義的 Oracle 安全是一種“sys 上帝”的主宰模型。我們雖然有各種系統、角色和對象權限,雖然各種安全手冊要我們使用非 sys 用戶進行維護工作,但是很多數據庫管理員還是在使用 sys 進行所有工作。一些數據防護技術,比如 VPD 雖然可以實現數據層面的控制,但是對 sys 也是無效的。
更重要的是一些 any 類的系統權限,如 select any table,一旦賦予,用戶其實就控制了所有數據表的數據訪問。這個是非常武斷的做法,潛藏著很大問題。
在“sys 上帝”的前提控制下,這樣的局面是控制不住的。因為一些運維操作,如數據備份、導入導出是避免不了高級訪問權限的。“要么不做、要么別管”就是我們目前很多運維機構的現狀。
Oracle Vault 提供了 sys 用戶削權的一種選擇。作為 Oracle 數據庫的一個可選組件,Vault 是需要額外的文件鏈接、注冊和安裝的。安裝 vault 之后,Oracle 會去創建一個全新的用戶 dbvowner,原有的 sys 對一些數據的操作和訪問權限,也都有進行控制的可能。
Vault 中的三個核心要素:Realm(領域)、Factor(因素)和規則(Rule)。從數據對象、操作命令等多個方面來限制或者保護特定的對象。
本系列中,會介紹 Oracle Vault 的安裝、配置和使用方法。首先,我們介紹如何進行 vault 安裝。
2、Oracle Vault 前提
默認企業版中,Vault 是不會安裝的。我們需要手工的進行編譯、安裝,才能使用。
我們采用 Oracle 11gR2 進行測試,版本號為 11.2.0.4。
SQL select * from v$version;
BANNER
—————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – Production
PL/SQL Release 11.2.0.4.0 – Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 – Production
NLSRTL Version 11.2.0.4.0 – Production
判斷當前 vault 是否安裝,查看 v$option 視圖。
SQL select * from v$option where parameter like %Vault%
PARAMETER VALUE
————————- ———-
Oracle Database Vault FALSE
安裝配置之前,要將數據庫、監聽程序、DB Console 關閉。
– 監聽程序
[oracle@SimpleLinux ~]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 07-APR-2014 12:41:34
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SimpleLinux)(PORT=1521)))
The command completed successfully
–Console
[oracle@SimpleLinux ~]$ emctl stop dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0
Copyright (c) 1996, 2013 Oracle Corporation. All rights reserved.
https://SimpleLinux:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control …
… Stopped.
–Database Server
SQL shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
3、組件編譯
Oracle Vault 是依賴 Label Security,需要在操作系統層面上啟動配置。在 Linux/Unix 環境下,使用 make 進行配置鏈接。
[oracle@SimpleLinux lib]$ cd $ORACLE_HOME/rdbms/lib
[oracle@SimpleLinux lib]$ make -f ins_rdbms.mk dv_on lbac_on ioracle
/usr/bin/ar d /u01/app/oracle/rdbms/lib/libknlopt.a kzvndv.o
/usr/bin/ar cr /u01/app/oracle/rdbms/lib/libknlopt.a /u01/app/oracle/rdbms/lib/kzvidv.o
/usr/bin/ar d /u01/app/oracle/rdbms/lib/libknlopt.a kzlnlbac.o
/usr/bin/ar cr /u01/app/oracle/rdbms/lib/libknlopt.a /u01/app/oracle/rdbms/lib/kzlilbac.o
chmod 755 /u01/app/oracle/bin
– Linking Oracle
rm -f /u01/app/oracle/rdbms/lib/oracle
gcc -o /u01/app/oracle/rdbms/lib/oracle -m32 -z noexecstack -L/u01/app/oracle/rdbms/lib/ -L/u01/app/oracle/lib/ -L/u01/app/oracle/lib/stubs/ -L/u01/app/oracle/lib/ -lirc -lipgo -Wl,-E /u01/app/oracle/rdbms/lib/opimai.o
(篇幅原因,有省略……)
-L/u01/app/oracle/lib
test ! -f /u01/app/oracle/bin/oracle ||\
mv -f /u01/app/oracle/bin/oracle /u01/app/oracle/bin/oracleO
mv /u01/app/oracle/rdbms/lib/oracle /u01/app/oracle/bin/oracle
chmod 6751 /u01/app/oracle/bin/oracle
注意:如果在 Exadata 中需要使用 IPC 協議訪問存儲,則需要加入 ipc_rds 協議模塊。另外如果 Windows 平臺,則是將 $ORACLE_HOME/bin 目錄中 oradv11.dll.dbl 改名為 oradv11.dll 命令。
之后,重新啟動監聽器和服務器。
[oracle@SimpleLinux lib]$ lsnrctl start
SQL conn / as sysdba
Connected to an idle instance.
SQL startup
ORACLE instance started.
Total System Global Area 372449280 bytes
Fixed Size 1364732 bytes
Variable Size 281021700 bytes
4、調用 dbca 啟動
在支持 GUI 的界面方式下,調用 dbca 啟動編譯。
點擊下一步 Next,選擇 Configure Database Options 項目。之后選擇目標數據庫。
從選項中,選擇上 Label Security 和 Vault 選項。
配置項目中,包括了 Oracle Vault 用戶 owner 的名稱和管理員密碼。注意:這個配置密碼環節是很嚴格的,要求長度是 8 -30 位、不出現重復字符和包括至少一個標點符號。
選擇連接方法,包括獨占方式和共享連接方式。最后安裝選項。
最后安裝成功,結束 GUI 界面。
5、啟動 DBV 配置界面
和很多 Oracle 組件一樣,Oracle Vault 是可以通過一系列的 API 接口調用來進行配置管理的。但是,由于復雜性,Oracle 并不推薦直接使用 API 接口命令進行管理,而是通過提供的 dbv 應用進行配置。使用 dbv 的方法和 em 很像,而且避免了出現錯誤的幾率。
調用 dbv 的方法,首先是啟動 emctl。之后調用 https://:
/dva。端口號和 em 是一樣的。
點擊登錄,就可以看到配置項目。
Vault 默認是提供很多默認配置內容的。在完成安裝之后,我們最直接觀察就是 sys 本身功能被限制。
SQL conn sys/oracle@ora11g as sysdba
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Connected as SYS
SQL create user xxx identified by xxx;
create user xxx identified by xxx
ORA-01031: 權限不足
SQL alter user scott identified by tiger;
alter user scott identified by tiger
ORA-01031: 權限不足
6、結論
Oracle Vault 是目前 Oracle 官方推薦的運維安全策略。在實際應用中,主要便于進行 sys 等管理員帳號權限限制,保護核心業務數據。
以上是“Oracle Vault 是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!