ORACLE口令檔案驗證與作業系統驗證
1. 使用作業系統驗證
2個前提必須同時滿足
1)os下建立使用者ORA_DBA使用者組,
然後可以新建立使用者或者把原來的使用者加入到ORA_DBA組中,然後使用這個使用者在安裝了資料庫的本地機器登陸或者使用安全的遠端連線登陸,可以作為sysdba登入,在資料庫級不需要提供密碼。
2)檔案中加入
ENTICATION_SERVICES=(NTS)
下列方式都是使用os驗證登陸
Sqlplus “/ as sysdba”
Sqlplus “sys/sys as sysdba”
Sqlplus “sys/sdf as sysdba” //sys口令錯誤
Sqlplus “scott/sdf as sysdba” //scott口令錯誤
此時show user 都是sys
說明;只要在登陸是有/ as sysdba。就使用os驗證方式。不管是否是sys使用者,或者密碼是否正確。
這樣存在安全隱患
2. 關閉os驗證
1) 把作業系統使用者的ORA_DBA組取消
2) 檔案ENTICATION_SERVICES= (NONE) 關閉os認證方式
2個條件滿足任何一個即可。
3. 使用口令檔案驗證
如果當前沒有使用口令檔案驗證。可以採用如下方法開啟口令檔案驗證。
1.建立口令檔案
C:>orapwd file=C:oracleora92database password=admin entries=5
口令檔名格式
pwd + sid +
必須按照這個格式命名。
2.確認引數是否正確
Remote_login_passwordfile=exclusive
None 不使用口令檔案驗證,如果不使用口令檔案驗證時,沒有使用者在ora_dba組中,那麼就沒有任何使用者可以作為sysdba進入資料庫了。
Exclusive 一個數據庫使用一個口令檔案
Shared 多個數據庫使用一個口令檔案
如果remote_login_passwordfile=exclusive 而且os中有ora_dba組。那麼使用者如果作為ora_dba組登陸的話。仍然可以使用os的驗證
Shared說明
當remote_login_passwordfile=shared時候,
在C:oracleora92database目錄下仍然生成pwd+檔案。每個資料庫使用自己的sys使用者和對應的.密碼,但是不能再加入新的有sysdba許可權的使用者
3.重新啟動資料庫,sys自動被加入到口令檔案中
此時。口令檔案中沒有任何使用者。因為剛建立起來。
通過查詢 select * from v$pwfile_users; 可以知道
如果利用grant sysdba to sys; 把sys加入到口令檔案。會報錯。
必須要重啟,會自動吧sys加入進去
4. 把system使用者寫入口令檔案中
Grant sysdba to system;
授權命令成功後。
select * from v$pwfile_users;
可以看到system已經在口令檔案中
5.忘記sys口令的話,2種做法都可以。
1)開啟os認證方式,/as sysdba連線進去。 Alter user sys identified by sys;
2)通過刪除口令檔案.然後用orapwd命令重新建立口令檔案來做.但是需要重啟資料庫