數據庫安全性策略
2024-07-21 02:37:09
供稿:網友
 
             數據庫安全性問題一直是圍繞著數據庫治理員的惡夢,數據庫數據的丟失以及數據庫被非法用戶的侵入使得數據庫治理員身心疲憊不堪。本文圍繞數據庫的安全性問題提出了 一些安全性策略,希望對數據庫治理員有所幫助,不再夜夜惡夢。 
  
  數據庫安全性問題應包括兩個部分: 
  
  一、數據庫數據的安全 
  它應能確保當數據庫系統DownTime時,當數據庫數據存儲媒體被破壞時以及當數據庫用戶誤操作時,數據庫數據信息不至于丟失。 
  
  二、數據庫系統不被非法用戶侵入 
  它應盡可能地堵住潛在的各種漏洞,防止非法用戶利用它們侵入數據庫系統。 對于數據庫數據的安全問題,數據庫治理員可以參考有關系統雙機熱備份功能以及 數據庫的備份和恢復的資料。 
  以下就數據庫系統不被非法用戶侵入這個問題作進一步的闡述。 
  組和安全性 
  在操作系統下建立用戶組也是保證數據庫安全性的一種有效方法。Oracle程序為了安全性目的一般分為兩類:一類所有的用戶都可執行,另一類只DBA可執行。在Unix環境下組設置的配置文件是/etc/group,關于這個文件如何配置,請參閱Unix的有關手冊,以下是保證安全性的幾種方法: 
  (1) 在安裝Oracle Server前,創建數據庫治理員組(DBA)而且分配root和Oracle軟件擁有者的用戶ID給這個組。DBA能執行的程序只有710權限。在安裝過程中SQL*DBA系統權限命令被自動分配給DBA組。 
  (2) 答應一部分Unix用戶有限制地訪問Oracle服務器系統,增加一個由授權用戶組成的Oracle組,確保給Oracle服務器實用例程Oracle組ID,公用的可執行程序,比如SQL*Plus,SQL*Forms等,應該可被這組執行,然后該這個實用例程的權限為710,它將答應同組的用戶執行,而其他用戶不能。 
  (3) 改那些不會影響數據庫安全性的程序的權限為711。 
  注:在我們的系統中為了安裝和調試的方便,Oracle數據庫中的兩個具有DBA權限的用戶Sys和System的缺省密碼是manager。為了您數據庫系統的安全,我們強烈建議您該掉這兩個用戶的密碼,具體操作如下: 
  在SQL*DBA下鍵入: 
  alter user sys indentified by passWord; 
  alter user system indentified by password; 
  其中password為您為用戶設置的密碼。 
  
  Oracle服務器實用例程的安全性 
  以下是保護Oracle服務器不被非法用戶使用的幾條建議: 
  (1) 確保$ORACLE_HOME/bin目錄下的所有程序的擁有權歸Oracle軟件擁有者所有; 
  (2) 給所有用戶實用便程(sqiplus,sqiforms,eXP,imp等)711權限,使服務器上所有的用戶都可訪問Oracle服務器; 
  (3) 給所有的DBA實用例程(比如SQL*DBA)700權限。 
  
  Oracle服務器和Unix組 
  當訪問本地的服務器時,您可以通過在操作系統下把Oracle服務器的角色映射到Unix的組的方式來使用Unix治理服務器的安全性,這種方法適應于本地訪問。在Unix中指定Oracle服務器角色的格式如下: 
  ora_sid_role[_dla] 
  其中 
  sid 是您Oracle數據庫的oracle_sid; 
  role 是Oracle服務器中角色的名字; 
  d (可選)表示這個角色是缺省值; 
  a (可選)表示這個角色帶有WITH ADMIN選項,您只可以把這個角色 授予其他角色,不能是其他用戶。 
  以下是在/etc/group文件中設置的例子: 
  ora_test_osoper_d:NONE:1:jim,narry,scott 
  ora_test_osdba_a:NONE:3:pat 
  ora_test_role1:NONE:4:bob,jane,tom,mary,jim 
  bin: NONE:5:root,oracle,dba 
  root:NONE:7:root 
  詞組“ora_test_osoper_d”表示組的名罪
  
  
  在Oracle Web Server里產生安全認證請求 
  %genreq /* 在 ORACLE_HOME路徑下運行 */ 
  
  Certificate Request Generator /* 提示信息 */ 
  
  G - Generate key pair and certificate request 
  
  Q - Quit 
  
  > Enter choice: 
                           
  G /* 輸入G,產生安全申請的密匙對 */ 
  
  > Enter password (at least 8 characters) for creating a PRivate key or 
  
  press to cancel: 
  
  /* 創建私人密匙的口令 */ 
  
  > Confirm the password: 
  
  /*重復輸入密匙的口令 */ 
  
  > Specify the public exponent used to generate key pair [F4]: 
  
  > Enter modulus size [768]: 
  
  > Choose how you want to generate a random seed for the key pair. 
  
  F - Random file 
  
  K - Random key sequences 
  
  B - Both 
  
  Enter choice: 
  
  B /* 輸入B,選擇產生密匙對的隨機數產生方法 */ 
  
  > Enter the name of file to use as a source of random seed information: 
  
  /* 輸入ORACLE_HOME路徑下任何一個文件名 */ 
  
  Type random characters (about 400) until you hear a beep: 
  
  /* 輸入400個隨機字符 */ 
  
  ........................................................................................... 
  
  > Stop typing. 
  
  > Accept? [Y] 
  
  > Enter the name of the distinguished name file [servname.der]: 
  
  > Enter the name of the private key file [privkey.der]: 
  
  > Enter the name of the certificate request file [certreq.pkc]: 
  
  > Enter the identification information for the certificate you are requesting: 
  
  > Enter your Common Name (1 to 64 chars): 
  
  /* 輸入你服務器的域名 */ 
  
  > Enter your Organization Unit Name (1 to 64 chars): 
  
  /* 輸入你所在的部門名稱 */ 
  
  > Enter your Organization Name (1 to 64 chars): 
  
  /* 輸入你的公司名 */ 
  
  > Enter your Locality Name (1 to 128 chars): 
  
  /* 輸入你所在的位置 */ 
  
  > Enter your State or Province (1 to 128 chars) [default: Illinois]: 
  
  /* 輸入你所在的省或市 */ 
  
  > Enter your Country Name (2 chars) [default:US]: 
  
  CN /* 輸入你所在的國家簡稱 */ 
  
  > Enter your Web Master"s name (1 to 64 chars): 
  
  /* 輸入你Web站點治理者的名字 */ 
  
  > Enter your Web Master"s E-mail address (1 to 128 chars): 
  
  /* 輸入你Web站點治理者E-mail地址 */ 
  
  > Enter the name and version number of application 
  
  for which you are getting the certificate (1 to 64 chars) 
  
  [Spyglass Server Version 2.11]: 
  
  Thank you. 
  
  ........done /* 安全申請的密匙對成功地產生了 */ 
  
  G - Generate key pair and certificate request 
  
  Q - Quit 
  
  > Enter choice: 
  
  Q /* 退出申請 */ 
  
  把安全認證請求發到安全認證機構VeriSign, Inc公司 
  把第一步產生的安全認證請求文件certreq.pkc內容復制下來,粘貼到認證機構VeriSign, Inc公司(或者其它認證機構)申請框內,接著輸入你的聯系地址、電話等信息后,提交申請。 
  
  接收證書 
  等待認證機構VeriSign, Inc公司(或者其它認證機構)發給你的郵件。郵件內含有安全認證代碼。 
                           
  安裝證書 
  用文本編輯器把認證機構VeriSign, Inc公司(或者其它認證機構)發給你的郵件中---BEGIN CERTIFICATE---前面的內容和---END CERTIFICATE---后面的內容刪去,存在某個后綴是der文件里(例如:cert.der)。 
  在Oracle Web Server里創建443(缺省的https)端口或者其它端口 
  進入443 Lisenter Configure里選Security,配置Secure Sockets Layer 
  Cert Label t1 /* 證書標簽,任意輸入一字符串 */ 
  
  Cert File /ORACLE_HOME/cert.der / * 證書存放的物理路徑 */ 
  
  Dist Name File /ORACLE_HOME/certreq.pkc /* 認證請求文件存放的物理路徑 */ 
  
  Private Key File /ORACLE_HOME/privkey.der /* 私人密匙存放的物理路徑 */ 
  
  CA Dir /ORACLE_HOME /* 以后有效證書存放的物理路徑 */ 
  
  CRL Dir /ORACLE_HOME /* 以后失效證書存放的物理路徑 */ 
  
  修改Lisenter 
  
  選Network,修改端口Security屬性,從原來NORM改為SSL 
  啟動此端口,在用戶的瀏覽器上輸入https://主機名:端口號/,即啟動執行SSL協議,在Internet網上傳輸加過密的較安全信息。