數(shù)據(jù)庫(kù)安全性策略
數(shù)據(jù)庫(kù)安全性問(wèn)題一直是圍繞著數(shù)據(jù)庫(kù)管理員的惡夢(mèng),數(shù)據(jù)庫(kù)數(shù)據(jù)的丟失以及數(shù)據(jù)庫(kù) 被非法用戶的侵入使得數(shù)據(jù)庫(kù)管理員身心疲憊不堪。本文圍繞數(shù)據(jù)庫(kù)的安全性問(wèn)題提出了一些安全性策略,希望對(duì)數(shù)據(jù)庫(kù)管理員有所幫助,不再夜夜惡夢(mèng)。
數(shù)據(jù)庫(kù)安全性問(wèn)題應(yīng)包括兩個(gè)部分:
一、數(shù)據(jù)庫(kù)數(shù)據(jù)的安全
它應(yīng)能確保當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)DownTime時(shí),當(dāng)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)媒體被破壞時(shí)以及當(dāng)數(shù)據(jù)庫(kù)用戶誤操作時(shí),數(shù)據(jù)庫(kù)數(shù)據(jù)信息不至于丟失。
二、數(shù)據(jù)庫(kù)系統(tǒng)不被非法用戶侵入
它應(yīng)盡可能地堵住潛在的各種漏洞,防止非法用戶利用它們侵入數(shù)據(jù)庫(kù)系統(tǒng)。對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)的安全問(wèn)題,數(shù)據(jù)庫(kù)管理員可以參考有關(guān)系統(tǒng)雙機(jī)熱備份功能以及數(shù)據(jù)庫(kù)的備份和恢復(fù)的資料。以下就數(shù)據(jù)庫(kù)系統(tǒng)不被非法用戶侵入這個(gè)問(wèn)題作進(jìn)一步的闡述。
組和安全性
在操作系統(tǒng)下建立用戶組也是保證數(shù)據(jù)庫(kù)安全性的一種有效方法。Oracle程序?yàn)榱税?全性目的一般分為兩類:一類所有的用戶都可執(zhí)行,另一類只DBA可執(zhí)行。在Unix環(huán)境下組設(shè)置的配置文件是/etc/group,關(guān)于這個(gè)文件如何配置,請(qǐng)參閱Unix的有關(guān)手冊(cè),以下是保證安全性的幾種方法:
(1) 在安裝Oracle Server前,創(chuàng)建數(shù)據(jù)庫(kù)管理員組(DBA)而且分配root和Oracle軟件擁有者的用戶ID給這個(gè)組。DBA能執(zhí)行的程序只有710權(quán)限。在安裝過(guò)程中SQL*DBA系統(tǒng)權(quán)限命令被自動(dòng)分配給DBA組。
(2) 允許一部分Unix用戶有限制地訪問(wèn)Oracle服務(wù)器系統(tǒng),增加一個(gè)由授權(quán)用戶組成的Oracle組,確保給Oracle服務(wù)器實(shí)用例程Oracle組ID,公用的可執(zhí)行程序,比如SQL*Plus,SQL*Forms等,應(yīng)該可被這組執(zhí)行,然后該這個(gè)實(shí)用例程的權(quán)限為710,它將允許同組的用戶執(zhí)行,而其他用戶不能。
(3) 改那些不會(huì)影響數(shù)據(jù)庫(kù)安全性的程序的權(quán)限為711。
注:在我們的系統(tǒng)中為了安裝和調(diào)試的方便,Oracle數(shù)據(jù)庫(kù)中的兩個(gè)具有DBA權(quán)限的 用戶Sys和System的缺省密碼是manager。為了您數(shù)據(jù)庫(kù)系統(tǒng)的安全,我們強(qiáng)烈建議您該掉這兩個(gè)用戶的密碼,具體操作如下:
在SQL*DBA下鍵入:
alter user sys indentified by password;
alter user system indentified by password;
其中password為您為用戶設(shè)置的密碼。
Oracle服務(wù)器實(shí)用例程的安全性
以下是保護(hù)Oracle服務(wù)器不被非法用戶使用的幾條建議:
(1) 確保$ORACLE_HOME/bin目錄下的所有程序的擁有權(quán)歸Oracle軟件擁有者所有;
(2) 給所有用戶實(shí)用便程(sqiplus,sqiforms,exp,imp等)711權(quán)限,使服務(wù)器上所有的用戶都可訪問(wèn)Oracle服務(wù)器;
(3) 給所有的DBA實(shí)用例程(比如SQL*DBA)700權(quán)限。
Oracle服務(wù)器和Unix組
當(dāng)訪問(wèn)本地的服務(wù)器時(shí),您可以通過(guò)在操作系統(tǒng)下把Oracle服務(wù)器的角色映射到Unix的組的方式來(lái)使用Unix管理服務(wù)器的安全性,這種方法適應(yīng)于本地訪問(wèn)。在Unix中指定Oracle服務(wù)器角色的格式如下:
ora_sid_role[_dla]
其中
sid 是您Oracle數(shù)據(jù)庫(kù)的oracle_sid;
role 是Oracle服務(wù)器中角色的名字;
d (可選)表示這個(gè)角色是缺省值;
a (可選)表示這個(gè)角色帶有WITH ADMIN選項(xiàng),您只可以把這個(gè)角色 授予其他角色,不能是其他用戶。以下是在/etc/group文件中設(shè)置的例子:
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”表示組的名罪
討論主題: 數(shù)據(jù)庫(kù)安全性策略
在Oracle Web Server里設(shè)置使用SSL協(xié)議1998/6/18
在Oracle Web Server里產(chǎn)生安全認(rèn)證請(qǐng)求
%genreq /* 在 ORACLE_HOME路徑下運(yùn)行 */Certificate Request Generator /* 提示信息 */G - Generate key pair and certificate request
Q - Q
uit
> Enter choice:
G /* 輸入G,產(chǎn)生安全申請(qǐng)的密匙對(duì) */ > Enter password (at least 8 characters) for creating a private key or press to cancel:
/* 創(chuàng)建私人密匙的口令 */> Confirm the password:
/*重復(fù)輸入密匙的口令 */> 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,選擇產(chǎn)生密匙對(duì)的隨機(jī)數(shù)產(chǎn)生方法 */> Enter the name of file to use as a source of random seed information:
/* 輸入ORACLE_HOME路徑下任何一個(gè)文件名 */Type random characters (about 400) until you hear a beep:
/* 輸入400個(gè)隨機(jī)字符 */..................................................................................
> 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):
/* 輸入你服務(wù)器的域名 */> 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 /* 輸入你所在的國(guó)家簡(jiǎn)稱 */> Enter your Web Master's name (1 to 64 chars):
/* 輸入你Web站點(diǎn)管理者的名字 */> Enter your Web Master's E-mail address (1 to 128 chars):
/* 輸入你Web站點(diǎn)管理者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 /* 安全申請(qǐng)的密匙對(duì)成功地產(chǎn)生了 */G - Generate key pair and certificate request
Q - Quit
> Enter choice:
Q /* 退出申請(qǐng) */把安全認(rèn)證請(qǐng)求發(fā)到安全認(rèn)證機(jī)構(gòu)VeriSign, Inc公司把第一步產(chǎn)生的安全認(rèn)證請(qǐng)求文件certreq.pkc內(nèi)容復(fù)制下來(lái),粘貼到認(rèn)證機(jī)構(gòu)VeriSign, Inc公司(或者其它認(rèn)證機(jī)構(gòu))申請(qǐng)框內(nèi),接著輸入你的聯(lián)系地址、電話等信息后,提交申請(qǐng)。
接收證書
等待認(rèn)證機(jī)構(gòu)VeriSign, Inc公司(或者其它認(rèn)證機(jī)構(gòu))發(fā)給你的郵件。郵件內(nèi)含有安全認(rèn)證代碼。
安裝證書
用文本編輯器把認(rèn)證機(jī)構(gòu)VeriSign, Inc公司(或者其它認(rèn)證機(jī)構(gòu))發(fā)給你的郵件中---BEGIN CERTIFICATE---前面的內(nèi)容和---END CERTIFICATE---后面的內(nèi)容刪去,存在某個(gè)后綴是der文件里(例如:cert.der)。在Oracle Web Server里創(chuàng)建443(缺省的https)端口或者其它端口進(jìn)入443 Lisenter Configure里選Security,配置Secure Sockets Layer Cert Label t1 /* 證書標(biāo)簽,任意輸入一字符串 */Cert File /ORACLE_HOME/cert.der / * 證書存放的物理路徑 */Dist Name File /ORACLE_HOME/certreq.pkc /* 認(rèn)證請(qǐng)求文件存放的物理路徑 */Private Key File /ORACLE_HOME/privkey.der /* 私人密匙存放的物理路徑 */CA Dir /ORACLE_HOME /* 以后有效證書存放的物理路徑 */CRL Dir /ORACLE_HOME /* 以后失效證書存放的物理路徑 */修改Lisenter選Network,修改端口Security屬性,從原來(lái)NORM改為SSL啟動(dòng)此端口,在用戶的瀏覽器上輸入https://主機(jī)名:端口號(hào)/,即啟動(dòng)執(zhí)行SSL協(xié)議,在Internet網(wǎng)上傳輸加過(guò)密的較安全信息。