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命令重新建立口令文件來做.但是需要重啟數據庫