詳說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.
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。之後呼叫。埠號和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等管理員帳號許可權限制,保護核心業務資料。
本篇對安裝進行了簡單介紹,具體概念和相關內容我們在後面繼續討論。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-2147139/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VNC安裝配置詳細說明VNC
- 本地windows搭建spark環境,安裝與詳細配置(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)WindowsSparkJDKHadoop
- centos7 (阿里雲、linux) 單機spark的安裝與配置詳解(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)CentOS阿里LinuxSparkJDKHadoop
- 詳解:Flannel安裝與配置
- oracle安裝配置Oracle
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.3. Oracle net配置OracleLinux
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.1. Oracle軟體安裝OracleLinux
- MySQL的安裝與配置——詳細教程MySql
- ORACLE database vaultOracleDatabase
- 超詳細maven的解除安裝、重新安裝與配置Maven
- 使用LVS實現負載均衡原理及安裝配置詳解負載
- Nginx 安裝與配置Nginx
- Spark安裝與配置Spark
- Telnet安裝與配置
- 【Redis】安裝與配置Redis
- [Redis] 安裝與配置Redis
- 【MySQL】安裝與配置MySql
- jdk安裝與配置JDK
- MacVim安裝與配置Mac
- 【MongoDB】安裝與配置MongoDB
- Rabbitmq安裝與配置MQ
- vim安裝與配置
- MySQL安裝與配置MySql
- Supervisor安裝與配置
- Nginx安裝與配置Nginx
- 5:安裝配置 Oracle18COracle
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.2. 資料庫建立OracleLinux資料庫
- Jmeter安裝配置詳細教程JMeter
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.5. Linux配置OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(1)OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(2)OracleLinux
- 詳解 RHEL7.1 yum源配置與軟體安裝
- 解說CentOS 7下ActiveMQ安裝配置CentOSMQ
- oracle & mysql 驅動程式安裝配置OracleMySql
- Oracle for Windows安裝和配置之二OracleWindows
- Oracle for Windows安裝和配置之一OracleWindows
- Vue的安裝與配置Vue
- Redis的安裝與配置Redis
- MariaDB的安裝與配置