帶您了解ORACLE用戶(hù)驗(yàn)證機(jī)制
ORACLE用戶(hù)驗(yàn)證的機(jī)制關(guān)系到ORACLE數(shù)據(jù)庫(kù)的安全,下面就為您詳細(xì)介紹ORACLE用戶(hù)驗(yàn)證機(jī)制,如果您對(duì)此感興趣的話(huà),不妨一看。
系統(tǒng)安全一直是各個(gè)系統(tǒng)關(guān)注的首要問(wèn)題,而ORACLE用戶(hù)驗(yàn)證是其中很重要的一環(huán)。一般應(yīng)用程序習(xí)慣性地將用戶(hù)驗(yàn)證放在數(shù)據(jù)庫(kù)中,通過(guò)比對(duì)用戶(hù)的輸入與數(shù)據(jù)庫(kù)記錄來(lái)驗(yàn)證用戶(hù),但數(shù)據(jù)庫(kù)自身如何來(lái)驗(yàn)證呢?ORACLE用戶(hù)可以分為SYS用戶(hù)和普通用戶(hù),他們的驗(yàn)證方式有所區(qū)別
一、SYS用戶(hù)驗(yàn)證
SYS用戶(hù)擁有數(shù)據(jù)庫(kù)的完全控制權(quán),對(duì)其驗(yàn)證顯得至關(guān)重要。由于進(jìn)行驗(yàn)證時(shí)數(shù)據(jù)庫(kù)還不可用,ORACLE采用兩種方式來(lái)驗(yàn)證SYSDBA用戶(hù):操作系統(tǒng)驗(yàn)證和口令文件驗(yàn)證。
1. 操作系統(tǒng)驗(yàn)證
對(duì)于在安裝Oracle的本機(jī)上使用Oracle的情況,Oracle可以將用戶(hù)驗(yàn)證交給操作系統(tǒng),只要登錄操作系統(tǒng)的用戶(hù)在DBA組里,就有SYS用戶(hù)的權(quán)限,可以修改 $ORACLE_HOME/dbs/sqlnet.ora,加入如下行:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
操作系統(tǒng)驗(yàn)證具有***優(yōu)先級(jí),當(dāng)設(shè)置為他時(shí),口令文件驗(yàn)證不起作用
2. 口令文件驗(yàn)證
要使用口令文件驗(yàn)證,首先得禁用操作系統(tǒng)驗(yàn)證,修改 $ORACLE_HOME/network/admin/sqlnet.ora,加入如下行(這里將$ORACLE_HOME轉(zhuǎn)化為絕對(duì)路徑):
SQLNET.AUTHENTICATION_SERVICES= (NONE)
其次是設(shè)置口令驗(yàn)證配置參數(shù):remote_login_passwordfile,他可以有幾個(gè)值,其含義如下
-- none 不使用口令驗(yàn)證
-- exclusive 僅允許一個(gè)實(shí)例使用該口令文件
--shared 多個(gè)實(shí)例可以共用一個(gè)口令文件
這里將參數(shù)設(shè)置為獨(dú)占:
alter system set remote_login_passwordfile=exclusive scope=spfile;
shutdown immediate
使用口令實(shí)用程序生成口令文件
orapwd file= $ORACLE_HOME/database/pwdora10g.ora password=oracle
此時(shí)嘗試以不同方式登錄數(shù)據(jù)庫(kù)
sqlplus / as sysdba-----------------權(quán)限不足
sqlplus sys/oracle as sysdba---------------使用口令驗(yàn)證方式,登錄成功
二、普通ORACLE用戶(hù)驗(yàn)證
之前講了SYS用戶(hù)的驗(yàn)證,那么普通用戶(hù)如何驗(yàn)證?
SYS用戶(hù)是在數(shù)據(jù)庫(kù)還沒(méi)啟動(dòng)時(shí)登錄數(shù)據(jù)庫(kù)進(jìn)行啟動(dòng)操作,而普通用戶(hù)是在數(shù)據(jù)庫(kù)啟動(dòng)后操作不同方案下的對(duì)象。
所以普通用戶(hù)采用的是數(shù)據(jù)字典的驗(yàn)證方式:
select username,password from dba_users;
可以看到所有用戶(hù)和密碼
【編輯推薦】
系統(tǒng)默認(rèn)ORACLE用戶(hù)及口令