1. 使用作業系統驗證
2個前提必須同時滿足
1)os下建立使用者ora_dba使用者組,
然後可以新建立使用者或者把原來的使用者加入到ora_dba組中,然後使用這個使用者在安裝了資料庫的本地機器登陸或者使用安全的遠端連線登陸,可以作為sysdba登入,在資料庫級不需要提供密碼。
2)sqlnet.ora檔案中加入
sqlnet.authentication_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) sqlnet.ora檔案sqlnet.authentication_services= (none) 關閉os認證方式
目錄e:\oracle\product\10.2.0\db_1\network\admin>
2個條件滿足任何乙個即可。
3. 使用口令檔案驗證
如果當前沒有使用口令檔案驗證。可以採用如下方法開啟口令檔案驗證。
1.建立口令檔案
c:\>orapwd file=c:\oracle\ora92\database\pwdtest.ora password=admin entries=5
口令檔名格式
pwd + sid + .ora
必須按照這個格式命名。
oracle 11g目錄
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:\oracle\ora92\database目錄下仍然生成pwd+sid.ora檔案。每個資料庫使用自己的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已經在口令檔案中
6.忘記sys口令的話,2種做飯都可以。
1)開啟os認證方式,/as sysdba連線進去。 alter user sys identified by admin;
2)通過刪除口令檔案.然後用orapwd命令重新建立口令檔案來做.但是需要重啟資料庫
ORACLE口令檔案驗證與作業系統驗證 轉
1 使用作業系統驗證 2個前提必須同時滿足 1 os下建立使用者ora dba使用者組,然後可以新建立使用者或者把原來的使用者加入到ora dba組中,然後使用這個使用者在安裝了資料庫的本地機器登陸或者使用安全的遠端連線登陸,可以作為sysdba登入,在資料庫級不需要提供密碼。2 sqlnet.or...
oracle口令檔案
在資料庫未啟動之前,如果在本地則可以通過作業系統認證來啟動資料庫。但是如果不在本地的話,就得通過口令檔案驗證來啟動資料庫。1 oracle口令檔案的建立 orapwd file password entries force nosysdba 說明file 建立的密碼檔案 password 建立的口令...
Oracle的口令檔案
oracle的口令檔案的作用是存放所有以sysdba或者sysoper許可權連線資料庫的使用者的口令,如果想以sysdba許可權遠端連線資料庫,必須使用口令檔案,否則不能連上,由於sys使用者在連線資料庫時必須以sysdba or sysoper方式,也就是說sys使用者要想連線資料庫必須使用口令檔...