Oracle的口令檔案

2021-06-02 22:41:43 字數 1316 閱讀 2358

oracle的口令檔案的作用是存放所有以sysdba或者sysoper許可權連線資料庫的使用者的口令,如果想以sysdba許可權遠端連線資料庫,必須使用口令檔案,否則不能連上,由於sys使用者在連線資料庫時必須以sysdba or sysoper方式,也就是說sys使用者要想連線資料庫必須使用口令檔案,因此我認為在資料庫中存放sys使用者的口令其實沒有任何意義!使用口令檔案的好處是即使資料庫不處於open狀態,依然可以通過口令檔案驗證來連線資料庫。開始安裝完oracle,沒有給普通使用者授予sysdba許可權,口令檔案中只存放了sys的口令,如果之後把sysdba許可權授予了普通使用者,那麼此時會把普通使用者的口令從資料庫中讀到口令檔案中儲存下來,當然這時必須要求資料庫處於open狀態。

如果資料庫的sysdba是通過資料庫認證的,那麼密碼的資訊就儲存在這個檔案中,如果不小心把sys的密碼忘記了該怎麼辦呢?

第一步,將oracle的sysdba登入修改為os認證:改sqlnet.ora(windows的在:\oracle\product\10.2.0\db_1\network\admin下)的sqlnet.authentication_services= (nts)

這時候只要是屬於ora_dba組的使用者就可以不用密碼而以sysdba登入資料庫了,如sqlplus sys as sysdba,甚至是指定了乙個錯誤的密碼也可以登入sqlplus sys/aaaaa@orcl as sysdba;,因為這時候不檢查密碼,其實連是不是sys也不檢查,只要指定了as sysdba就會以sys使用者登入。

第二步,重新建立口令檔案:orapwd file=d:\oracle\product\10.2.0\db_1\database\pwdorcl.ora password=test entries=5

注意file=後面不能空格。

第三步,將資料庫登入改為資料庫認證:改sqlnet.ora(windows的在:\oracle\product\10.2.0\db_1\network\admin下)的

sqlnet.authentication_services= (none)

這時候再以不正確的密碼登入就會得到錯誤:ora-01017: invalid username/password; logon denied

以第二步指定的密碼則可以正確登入:sqlplus sys/test@orcl as sysdba;

登入後通過select * from v$pwfile_users;可以看到和口令檔案相關的使用者的資訊。

上面第二步指定的檔案是oracle預設路徑的預設檔名,如果想以別的檔名,這可以通過在登錄檔中新增資訊來完成,如sid是orcl,可以通過新增乙個字串ora_orcl_pwfile將值設為檔案的全路徑值。在unix中則通過環境變數來設定。

oracle口令檔案

在資料庫未啟動之前,如果在本地則可以通過作業系統認證來啟動資料庫。但是如果不在本地的話,就得通過口令檔案驗證來啟動資料庫。1 oracle口令檔案的建立 orapwd file password entries force nosysdba 說明file 建立的密碼檔案 password 建立的口令...

oracle引數檔案和口令檔案

外部 審核口令 記錄超級使用者的使用者名稱和口令,做sys使用者的安全審核 oracle9以後全部使用sys登入,但需要使用as sysdba 之前版本需要使用internal o7字典開啟 只要使用者和密碼存在於口令檔案,就可以以sysdba登入,使用者永遠是sys 隱式呼叫sys,修改sys口令...

ORACLE口令檔案及密碼認證

oracle口令檔案中存放sysdba sysoper使用者的使用者名稱及口令,允許使用者通過口令檔案驗證。本文包括以下四部分 1 使用orapwd建立口令檔案 2 介紹口令檔案的三種狀態 3 在口令檔案中新增使用者 4 維護口令檔案 5 密碼認證 1.使用orapwd建立口令檔案 什麼時候需要建立...