?

Oracle數據庫安全及參數配置

2024-04-09 17:59魏萬瓊王亦然
信息系統工程 2024年3期
關鍵詞:數據庫安全

魏萬瓊?王亦然

摘要:Oracle數據庫在部署和使用之前決定是否部署安全措施很重要,用戶在實施與維護的過程中都需要提前考慮好是否采取安全措施和實施安全策略?;诎踩渴鸬臄祿?,可以為后期使用和等保測評避免很多麻煩。除了在網絡硬件設備和防火墻設備上采用安全措施以外,還可以在系統的防火墻上實施數據庫的訪問IP及端口的限制策略。其次在數據庫安裝完成后也需要考慮數據庫的補丁升級和是否對數據庫的用戶和資源做限制策略。

關鍵詞:Oracle;防火墻策略;數據庫安全

一、前言

所有存儲在數據庫中的數據都是有價值的,為了防止數據被篡改和竊取,可以采用很多措施限制數據庫的訪問來保護數據的安全。比如在物理防火墻上做網絡訪問控制,或者使用堡壘機進行身份驗證及授權,以此來確保訪問的用戶及IP地址是否在可訪問的范圍內。本篇主要講述了從系統層面上做防火墻策略,以及數據庫用戶上做一些配置來限制數據的訪問,通過審計來保存訪問記錄,以此來做一些數據庫安全上的防護措施。

二、網絡安全配置

在安裝Oracle數據庫的時候,為避免出現網絡連通性的問題而導致數據庫安裝失敗,會選擇關閉系統防火墻。避免因為網絡無法聯通的問題而無法安裝RAC集群[1]。從安全的角度考慮,關閉系統防火墻是不可取的。安裝Oracle數據庫集群之前,就需要進行防火墻的配置,除了開放主機IP地址、私網IP地址、虛擬IP地址和SCAN IP地址的訪問權限,還需要節點之間的169.254.*網段的IP訪問權限。如圖1所示,10.10.20.0代表主機IP地址、虛擬IP地址和SCAN IP地址的網段。192.168.10.1和192.168.10.2是私網IP地址。169.254.*IP網段就是RAC集群中ora.cluster_interconnect.haip所需要的網段地址,啟動集群服務的也需要節點之間這個網段的IP地址互通,以此來實現集群的高可用和負載均衡。

如果需要具體到端口,RAC除了開放監聽端口(默認1521),還需要開放8000-65500之間的端口。數據庫安裝完成后,可以通過配置sqlnet.ora文件,設置TCP.VALIDNODE_CHECKING、TCP.EXCLUDED_NODES和TCP.INVITED_NODES參數來客戶端限制訪問數據庫。

三、用戶資源限制

每一個Oracle數據庫用戶都有一個配置文件,存在于數據庫中的一組可命名資源限制集,用于限制用戶對數據庫的連接訪問和資源使用。在創建用戶的時候,Oracle數據庫會自動為用戶分配一個名為DEFAULT的配置文件[2-3]。也可以通過SQL查看DEFAULT命名的配置文件在密碼和資源上的配置策略,如圖2所示。

根據圖2的信息,對RESOURCE_NAME列的各項參數進行簡單講述,在數據庫實際使用中可以根據具體需求,進行參數修改來實現數據庫用戶限制。

(一)COMPOSITE_LIMIT

針對指定會話的總資源消耗成本進行資源限制,需要綜合CPU_PER_SESSION、LOGICAL_READS_PER_SESSION 和 PRIVATE_SGA 來取值。

(二)SESSIONS_PER_USER

用于限制該用戶訪問數據庫的并發會話數,當數據庫用戶的SESSION值超過這個參數值就會報錯ORA-02391。

(三)CPU_PER_SESSION

指定會話的CPU時間限制,以1%秒為單位,推薦它的LIMIT值為unlimited。

(四)CPU_PER_CALL

指定調用的CPU時間限制,以1%秒為單位。

(五)LOGICAL_READS_PER_SESSION

指定會話中允許從存儲器和磁盤讀取的數據塊數。

(六)LOGICAL_READS_PER_CALL

指定允許調用處理SQL語句讀取的數據塊數。

(七)IDLE_TIME

指定會話期間允許的連續不活動時間限制,以分鐘為單位,超過這個時間限制,會話就會斷開,主要針對不活動的會話進程,長時間運行的會話不受此限制。

(八)CONNECT_TIME

指定所有狀態的會話連接時間限制,以分鐘為單位。

(九)PRIVATE_SGA

指定會話可以在系統全局區域的共享池中分配的私有空間大小,以字節表示。

1到9的參數都屬于資源限制,需要設置數據庫參數RESOURCE_LIMIT = TRUE 并重新啟動數據庫,參數設置才能生效。

(十)FAILED_LOGIN_ATTEMPTS

設置用戶在鎖定賬戶之前嘗試登錄的失敗次數,超過失敗次數,用戶將被鎖定。

(十一)PASSWORD_LIFE_TIME

設置用戶使用當前密碼的天數,超過這個天數,密碼則過期。用戶在下次登錄時,系統會提示用戶修改密碼。

(十二)PASSWORD_REUSE_TIME

指定一個天數,在這個天數范圍內,設置密碼不能重復,通過設置此參數來控制密碼的重復使用天數。

(十三)PASSWORD_REUSE_MAX

設置密碼在多少次之內都不能重復,通過設置此參數來控制密碼的重復使用次數,可以和PASSWORD_REUSE_TIME結合使用。

(十四)PASSWORD_LOCK_TIME

設置在指定的連續登錄嘗試失敗次數后鎖定賬戶的天數。鎖定時間過去后,該賬戶將被解鎖。這個配置參數有助于防止用戶密碼被暴力攻擊。

(十五)PASSWORD_GRACE_TIME

設置用戶在密碼過期之前必須更改密碼的天數,數據庫會在這個天數內提醒用戶密碼將過期。

(十六)PASSWORD_VERIFY_FUNCTION

設置一個PL/SQL密碼驗證腳本為參數傳遞到配置文件中,主要用于檢查數據庫用戶的密碼復雜度。Oracle提供了一個默認密碼驗證腳本utlpwdmg.sql,存放在$ORACLE_HOME/rdbms/admin/目錄下。

配置verify_function_11G函數的方法,需要執行者擁有dba權限的用戶登錄數據庫,執行以下步驟:

第一步:創建系統默認的口令復雜度函數

SQL>@?rdbms/admin/utlpwdmg.sql

第二步:創建一個自定義profile,設置密碼復雜度。

如創建MY_PROFILE引用verify_function_11G函數:

SQL> create profile MY_PROFILE limit PASSWORD_VERIFY_FUNCTION verify_function_11G;

第三步:將MY_PROFILE應用于用戶USTEST

SQL> alter user USTEST profile MY_PROFILE;

十到十六的參數屬于密碼配置實時生效,不需要重啟數據庫。

四、審計

(一)標準審計

審計是對數據庫內部控制強有力的有效管理辦法,監視和記錄用戶在數據庫的操作,嚴格控制用戶和應用程序對數據庫的訪問。

Oracle會將審計跟蹤的內容寫入數據字典表或操作系統日志文件中。

通過設置參數audit_trail=DB或者OS來打開數據庫審計,每次修改參數之后需要重新啟動數據庫才能生效。

參數值是指定審計記錄指定審計記錄寫入的目的地和寫入的數據類型,NONE指的是不啟動審計功能。

通過使用AUDIT和NOAUDIT語句來配置和刪除配置進行審計相關操作。

以下從語句審計、權限審計、對象審計和網絡審計四個方面講述。

1.語句審計

Oracle數據庫可以選擇審計語句執行成功的記錄,也可以選擇審計沒有執行成功的記錄,或者是執行成功和執行不成功的語句都記錄。監控未執行的SQL可能會暴露正在窺探或有惡意行為的用戶。

數據庫分別記錄SQL語句的每次執行、權限的使用以及審計對象的訪問,根據記錄的返回信息可以了解執行次數。審計記錄中有單獨的LOGON和LOGOFF條目。舉例,審計執行沒有成功的語句:

SQL> AUDIT INSERT TABLE, DELETE TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;

2.權限審計

權限審計選項與其對應的系統權限相同。舉例,審核DELETE ANY TABLE權限:

SQL> AUDIT DELETE ANY TABLE BY ACCESS;

3.對象審計

對象審計可以審計引用表、視圖、序列、獨立存儲過程或函數以及包的語句,在集群模式下,通過審計操作來間接審計對象的訪問。舉例,配置HR用戶下的EMPLOYEES表相關操作:

SQL> AUDIT INSERT, DELETE ON HR.EMPLOYEES BY ACCESS WHENEVER SUCCESSFUL;

4.審計網絡活動

可以使用AUDIT審計網絡協議和網絡層中的錯誤語句,這些錯誤以SQL*Net驅動程序拋出;網絡審計在審計記錄的字段中列出了客戶端的身份驗證類型和可用的 SQL*Net 地址。例如,配置網絡審計:

SQL> AUDIT NETWORK BY ACCESS;

(二)細粒度審計

細粒度審計能夠創建策略對特定類型的SQL語句進行審計,根據內容監控數據訪問,提供提供DML操作的細粒度審計操作的細粒度審計??梢酝ㄟ^查詢視圖DBA_FGA_AUDIT_TRAIL查找審計策略生成的記錄。

使用DBMS_FGA.ADD_POLICY創建細粒度審計策略,如果需要修改策略,則將其刪除重建。當暫時不需要審計策略的時候,可以使用DBMS_FGA.DISABLE_POLICY禁用審計策略,禁用后也可以使用DBMS_FGA.ENABLE_POLICY重新啟用審計策略,如果不再需要審計策略,可以使用DBMS_FGA.DROP_POLICY刪除審計策略。

五、結語

從網絡安全要求出發,做好網絡安全是應盡職責。在數據庫創建之前就應該做好安全上的規劃,無論是在數據庫的系統以及配置文件做安全訪問控制,還是配置數據庫用戶的訪問資源限制,包括配置用戶審計等一切安全措施,都是為了保護生產業務的數據庫安全,防止數據被竊取或篡改的一種手段。

參考文獻

[1]周文瓊,王樂球,鄭述招.Oracle網絡的配置與管理[J].計算機與數字工程,2014,42(12):2350-2353+2368.

[2]韋壹剛.Oracle數據庫日常維護與優化建議[J].信息與電腦(理論版),2018(08):142-143.

[3]陳飛.Oracle數據庫日常維護與優化[J].電子技術與軟件工程,2017(21):174.

責任編輯:王穎振、周航

猜你喜歡
數據庫安全
管理信息系統中數據庫安全實現方法
淺談高速公路數據庫安全審計
高職院校計算機網絡安全研究與分析
基于改進PSO的SVM算法在數據庫入侵檢測中的應用研究
高校數據庫安全技術教學實踐探索
關于數據庫安全及其防范方案的分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合