Oracle數據庫的安全策略分析(二)
2024-08-29 13:34:31
供稿:網友
 
                 SQL*DBA命令的安全性: 假如您沒有SQL*PLUS應用程序,您也可以使用SQL*DBA作SQL查權限相關的命令只能分配給Oracle軟件擁有者和DBA組的用戶,因為這些命令被授予了非凡的系統權限。                                                                                             (1) startup (2) shutdown (3) connect internal 數據庫文件的安全性: Oracle軟件的擁有者應該這些數據庫文件($ORACLE_HOME/dbs/*.dbf)設置這些文件的使用權限為0600:文件的擁有者可讀可寫,同組的和其他組的用戶沒有寫的權限。Oracle軟件的擁有者應該擁有包含數據庫文件的目錄,為了增加安全性,建議收回同組和其他組用戶對這些文件的可讀權限。 網絡安全性: 當處理網絡安全性時,以下是額外要考慮的幾個問題。 (1)在網絡上使用密碼在網上的遠端用戶可以通過加密或不加密方式鍵入密碼,當您用不加密方式鍵入密碼時,您的密碼很有可能被非法用 戶截獲,導致破壞了系統的安全性。 (2)網絡上的DBA權限控制您可以通過下列兩種方式對網絡上的DBA權限進行控制: A 設置成拒絕遠程DBA訪問; B 通過orapwd給DBA設置非凡的密碼。 二、建立安全性策略: 系統安全性策略: (1) 治理數據庫用戶數據庫用戶是訪問Oracle數據庫信息的途徑,因此,應該很好地維護治理數據庫用戶的安全性。按照數據庫系統的大小和治理數據庫用戶所需的工作量,數據庫安全性治理者可能只是擁有create,alter,或drop數據庫用戶的一個非凡用戶,或者是擁有這些權限的一組用戶,應注重的是,只有那些值得信任的個人才應該有治理數據庫用戶的權限。 (2) 用戶身份確認數據庫用戶可以通過操作系統,網絡服務,或數據庫進行身份確認,通過主機操作系統進行用戶身份認證的優點有: A 用戶能更快,更方便地聯入數據庫; B 通過操作系統對用戶身份確認進行集中控制:假如操作系統與數據庫用戶信息一致,那么Oracle無須存儲和治理用戶名以及密碼; C 用戶進入數據庫和操作系統審計信息一致。 (3) 操作系統安全性 A 數據庫治理員必須有create和delete文件的操作系統權限; B 一般數據庫用戶不應該有create或delete與數據庫相關文件的操作系統權限; C 假如操作系統能為數據庫用戶分配角色,那么安全性治理者必須有修改操作系統帳戶安全性區域的操作系統權限。 數據的安全性策略: 數據的生考慮應基于數據的重要性。假如數據不是很重要,那么數據的安全性策略可以稍稍放松一些。然而,假如數據很重要,那么應該有一謹慎的安全性策略,用它來維護對數據對象訪問的有效控制。 用戶安全性策略: (1) 一般用戶的安全性 A 密碼的安全性 假如用戶是通過數據庫進行用戶身份的確認,那么建議使用密碼加密的方式與數據庫進行連接。 這種方式的設置方法如下: 在客戶端的oracle.ini文件中設置 ora_encrypt_login數為true; 在服務器端的initORACLE_SID.ora文件中設置 dbling_encypt_login參數為true。 B 權限治理 對于那些用戶很多,應用程序和數據對象很豐富的數據庫,應充分利用“角色”這個機制所帶的方便性對權限進行 有效治理。對于復雜的系統環境,“角色”能大大地簡化權限的治理。 (2) 終端用戶的安全性 您必須針對終端用戶制定安全性策略。例如,對于一個有很多用戶的大規模數據庫,安全性治理者可以決定用戶組分類,為這些用戶組創建用戶角色,把所需的權限和應用程序角色授予每一個用戶角色,以及為用戶分配相應的用戶角色。當處理非凡的應用要求時,安全性治理者也必須明確地把一些特定的權限要求授予給用戶。您可以使用“角色”對終端用戶進行權限治理。 數據庫治理者安全性策略: (1) 保護作為sys和system用戶的連接當數據庫創建好以后,立即更改有治理權限的sys和system用戶的密碼,防止非法用戶訪問數據庫。當作為sys和system用戶連入數據庫后,用戶有強大的權限用各種方式對數據庫進行改動。 (2) 保護治理者與數據庫的連接 應該只有數據庫治理者能用治理權限連入數據庫,當以sysdba或startup,shutdown,和recover或數據庫對象(例如create,drop,和delete等)進行沒有任何限制的操作。 
                         (3) 使用角色對治理者權限進行治理 應用程序開發者的安全性策略: (1) 應用程序開發者和他們的權限數據庫應用程序開發者是唯一一類需要非凡權限組完成自己工作的數據庫用戶。開發者需要諸如createtable,createPRocedure等系統權限,然而,為了限制開發者對數據庫的操作,只應該把一些特定的系統權限授予開發者。 (2) 應用程序開發者的環境 A 程序開發者不應與終端用戶競爭數據庫資源; B 用程序開發者不能損害數據庫其他應用產品。 (3) free和controlled應用程序開發 應用程序開發者有一下兩種權限: A free development 應用程序開發者答應創建新的模式對象,包括table,index,procedure,package等,它答應應用程序開發者開發獨立于其他對象的應用程序。 B controlled development 應用程序開發者不答應創建新的模式對象。所有需要table,indes procedure等都由數據庫治理者創建,它保證了數據庫治理者能完全控制數據空間的使用以及訪問數據庫信息的途徑。但有時應用程序開發者也需這兩種權限的混和。 (4) 應用程序開發者的角色和權限 數據庫安全性治理者能創建角色來治理典型的應用程序開發者的權限要求。 A create系統權限經常授予給應用程序開發者,以到于他們能創建他的數據對象。 B 數據對象角色幾乎不會授予給應用程序開發者使用的角色。 (5) 加強應用程序開發者的空間限制作為數據庫安全性治理者,您應該非凡地為每個應用程序開發者設置以下的一些限制: A 開發者可以創建table或index的表空間; B 在每一個表空間中,開發者所擁有的空間份額。應用程序治理者的安全在有許多數據庫應用程序的數據庫系統 中,您可能需要一應用程序治理者,應用程序治理者應負責以下的任務: C 為每一個應用程序創建角色以及治理每一個應用程序的角色; D 創建和治理數據庫應用程序使用的數據對象; E 需要的話,維護和更新應用程序代碼和Oracle的存儲過程和程序包。