Oracle OS認證、口令檔案、密碼丟失處理
1、OS認證介紹
Oracle安裝之後預設情況下是啟用了OS認證的,這裡提到的OS認證是指伺服器端OS認證。OS認證的意思是把登入資料庫的使用者和口令校驗放在了作業系統一級。如果以安裝Oracle時的使用者登入OS,那麼此時再登入Oracle資料庫時不需要任何驗證,如:
SQL> connect / as sysdba
已連線。
SQL> connect sys/system@abc as sysdba
已連線。
SQL> connect sys/bbb as sysdba
已連線。
SQL> connect aaa/bbb as sysdba
已連線。
SQL> show user;
USER 為 "SYS"
SQL>
不論輸入什麼使用者(哪怕這個使用者如aaa在資料庫中根本不存在),只要以sysdba許可權連線資料庫,都可以連線上,並且連線使用者是sys,這樣很方便,有時候,如果忘記了資料庫的密碼,而又想登入資料庫,可以通過這種方式,前提是在資料庫伺服器上。
Oracle資料庫通過如下3個引數來實現OS認證:
l (1). sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES引數。
l (2). PFILE(或SPFILE)檔案中的REMOTE_LOGIN_PASSWORDFILE引數。
l (3). 口令檔案PWDsid.ora(Windows)或者orapwSID(linux,大小寫敏感).
(1)、sqlnet.ora檔案引數
檔案位置:$ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)
引數可以有如下值:
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE)
其中:
(NTS):表示作業系統認證方式,不使用口令檔案,預設值。
(NONE):口令檔案認證方式。
(2)、REMOTE_LOGIN_PASSWORDFILE引數
該引數可以有如下值:
REMOTE_LOGIN_PASSWORDFILE=’NONE’|’EXCLUSIVE’|’SHARED’
其中:
l NONE:不使用密碼檔案登入,不允許遠端使用者用sys登入系統,可以線上修改sys的密碼。
l EXCLUSIVE:預設值。只允許一個資料庫使用該密碼檔案,允許遠端登入,允許非sys使用者以sysdba身份管理資料庫,可以線上修改sys的密碼。在這種模式下,口令檔案可以包含用於多個特許的Oracle賬戶的口令。這是推薦的操作模式,特別是在執行RMAN時,如果希望將RMAN與來自於遠端客戶端的資料庫連線,則必須使用該引數設定。
l SHARE:可以多個資料庫使用密碼檔案。實際上是這樣的:Oracle資料庫在啟動時,首先查詢的是orapw
修改:
SQL> ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
需要注意的是:這個引數不是動態引數,需要在資料庫載入到mount狀態下修改,另外改變以後需要重啟資料庫,引數的設定才能生效。
3、禁用OS認證
OS認證存在一定的安全隱患,可以遮蔽OS認證。
在Windows下只要把$ORACLE_HOME/network/admin/sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES=(NTS)改成NONE或者註釋掉這句話(前面加上#),就可以遮蔽OS功能,要想以sys使用者連上資料庫必須輸入正確的sys口令,或者可以把Oracle的安裝使用者從組ora_dba中刪除掉,當然也可以直接把ora_dba這個組也刪除,都可以遮蔽os認證功能。
如:
SQL> connect / as sysdba
ERROR:
ORA-01031: 許可權不足
警告: 您不再連線到 ORACLE。
SQL> connect sys/aaa as sysdba
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
SQL> connect aaa/bbb as sysdba
ERROR:
ORA-01031: 許可權不足
SQL> connect sys/system as sysdba
已連線。
(2)、Linux/UNIX下
在檔案sqlnet.ora中增加SQLNET.AUTHENTICATION_SERVICES=(NONE)以及刪除dba(groupdel dba)組或者把oracle使用者從dba組中刪除都可以遮蔽os認證。
注意:使用這種遮蔽方法,系統管理員還是可以建立ora_dba or dba組以及修改sqlnet.ora檔案。
二、口令檔案
Oracle的口令檔案的作用是存放所有以sysdba或者sysoper許可權連線資料庫的使用者的口令。如果想以sysdba許可權遠端連線資料庫,必須使用口令檔案,否則不能連上。由於sys使用者在連線資料庫時必須以sysdba or sysoper方式,也就是說sys使用者要想連線資料庫必須使用口令檔案,因此我認為在資料庫中存放sys使用者的口令其實沒有任何意義。使用口令檔案的好處是即使資料庫不處於open狀態,依然可以通過口令檔案驗證來連線資料庫。開始安裝完oracle,沒有給普通使用者授予sysdba許可權,口令檔案中只存放了sys的口令,如果之後把sysdba許可權授予了普通使用者,那麼此時會把普通使用者的口令從資料庫中讀到口令檔案中儲存下來,當然這是必須要求資料庫處於open狀態。
可以通過查詢v$pwfile_users檢視來檢視有幾個使用者被授予了sysdba或者sysoper許可權,v$pwfile_users的資訊就是來源於口令檔案。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
LXH TRUE FALSE
USR1 TRUE TRUE
到底可以有幾個使用者被授予sysdba或者sysoper許可權,是由建立口令檔案時指定的entries數決定的,準確的說還不完全是,最終還和os block的大小有關,如果entries指定了5,一個os block可以存放8個使用者的口令,那麼可以有8個使用者被授予sysdba或者sysoper。
注意:事實是口令多長,加密之後的長度幾乎都是相同的。也就是說口令檔案佔用的大小和口令指定的長度幾乎關係不大。
c:\>orapwd file=databasepwd.ora password=system entries=5
OPW-00005: 存在同名檔案 - 請刪除或重新命名
c:\>orapwd file=databasepwd.ora password=system entries=5 force=y
建立口令檔案需要注意的是=前後沒有空格。在10g增加了一個新的引數force default值n,它的作用類似於建立表空間時的reuse功能,當同名檔案存在時是否覆蓋。
是否使用口令檔案,由remote_login_passwordfile引數控制,這個引數在上面有說明。
Windows下口令檔案的格式是pwdsid.ora(大小寫敏感)。
UNIX下的格式是orapwSID(大小寫敏感)。
Oracle資料庫在啟動時,首先查詢的是orapw
4、sys/system密碼丟失的處理方法
(1)、查詢檢視v$pwfile_users,記錄下擁有sysoper/sysdba系統許可權的使用者資訊。
(2)、關閉資料庫
(3)、將密碼檔案重新命名
(4)、用orapwd命令重建密碼檔案
orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=admin entries=5 force=y
(5)、將第一步查出來的使用者新增到密碼檔案
grant sysdba,sysoper to user;
轉載自Dave:http://blog.csdn.net/tianlesoftware/article/details/4698293
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-777048/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle OS 認證, 口令檔案Oracle
- Oracle OS認證與口令檔案認證詳解Oracle
- os認證和口令檔案!
- Oracle中兩種認證方式:OS認證與口令檔案認證Oracle
- oracle os認證和口令檔案認證的簡要解析Oracle
- 關於os認證和口令檔案認證
- 關於os認證和口令檔案認證(轉)
- os認證、口令檔案認證及兩個引數【轉】
- os認證以及口令檔案的(引用warehouse的)
- OS認證以及口令檔案的一點總結(轉)
- 控制檔案丟失處理方法
- oracle 案例-控制檔案丟失故障處理過程Oracle
- ASM認證與口令檔案ASM
- redo log檔案丟失處理措施
- 作業系統認證與ORACLE密碼檔案認證方式作業系統Oracle密碼
- Oracle基礎結構之OS驗證和口令檔案驗證Oracle
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- Oracle_dg歸檔丟失問題處理Oracle
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- 1.6.5. 使用密碼檔案認證密碼
- SCO UNIX系統root密碼丟失的處理(轉)密碼
- Oracle資料庫聯機日誌檔案丟失處理方法(1)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(3)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(2)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(4)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(5)Oracle資料庫
- Oracle聯機日誌檔案丟失或損壞的處理方法Oracle
- Oracle資料庫聯機日誌檔案丟失處理方法(總結)!Oracle資料庫
- ORACLE聯機日誌檔案丟失或損壞的處理方法(轉)Oracle
- 記一次Oracle 聯機日誌檔案丟失的處理方案Oracle
- Oracle聯機日誌檔案丟失或損壞的處理方法 (轉)Oracle
- 非歸檔下日誌檔案丟失的處理辦法
- 關於ORACLE作業系統認證和ORAPWD密碼檔案認證SYSDBA許可權Oracle作業系統密碼
- oracle本地驗證和密碼檔案Oracle密碼
- 重新認識口令檔案
- Oracle資料庫聯機日誌檔案丟失處理方法(總結)(轉)Oracle資料庫
- coreldraw檔案丟失(損壞)的恢復處理辦法
- Oracle ----口令檔案Oracle