口令檔案的作用及其重建小結

賀子_DBA時代發表於2014-08-18

1,首先你要清楚口令檔案的作用,  當你透過遠端的方式去連線資料庫時,口令檔案會校驗使用者的密碼 是否正確,但是如果你是透過作業系統驗證,那口令檔案就不再起作用了  來看下面的驗證
[oracle@ENMOEDU dbs]$ sqlplus sys/oracle@ENMOEDU as sysdba             #遠端方式登入

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 17 22:25:08 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 
[oracle@ENMOEDU dbs]$ sqlplus / as sysdba                   #作業系統驗證

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 17 22:30:04 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SYS@ENMOEDU>
2.接著我們們把口令檔案刪掉。口令檔案的命名格式 :orapw+例項名
[oracle@ENMOEDU dbs]$ pwd 
/u01/app/oracle/product/11.2.0/dbhome_1/dbs 
[oracle@ENMOEDU dbs]$ ls                    #紅色字是口令檔案
84pg6l6q_1_1 87pg6lh0_1_1 c-87396644-20140817-01 init.ora orapwenmoedu snapcf_ENMOEDU.f 
86pg6lco_1_1 c-87396644-20140817-00 hc_ENMOEDU.dat lkENMOEDU orapwENMOEDU spfileENMOEDU.ora
[oracle@ENMOEDU dbs]$ rm orapwENMOEDU
3.再次驗證遠端方式和作業系統驗證兩種方式   發現遠端已經不能成功連線了  但作業系統仍然有效
[oracle@ENMOEDU dbs]$ sqlplus sys/oracle@ENMOEDU as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 17 22:32:55 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 

ERROR: 
ORA-01031: insufficient privileges 
[oracle@ENMOEDU dbs]$ sqlplus / as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 17 22:35:14 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options
4.要知道口令檔案是可以重建的    看下面過程
1)顯示建立密碼檔案工具的幫助資訊
oracle@ENMOEDU dbs]$ orapwd 
Usage: orapwd file= entries= force= ignorecase= nosysdba= 

where 
file - name of password file (required), 
password - password for SYS will be prompted if not specified at command line, 
entries - maximum number of distinct DBA (optional), 
force - whether to overwrite existing file (optional), 
ignorecase - passwords are case-insensitive (optional), 
nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only). 

There must be no spaces around the equal-to (=) character.
2)建立密碼檔案
[oracle@ENMOEDU dbs]$ orapwd file=orapwENMOEDU password=oracle entries=10   #entries 是說最多可以有多少擁有DBA角色的使用者
[oracle@ENMOEDU dbs]$ ls 
84pg6l6q_1_1 87pg6lh0_1_1 c-87396644-20140817-01 init.ora orapwenmoedu snapcf_ENMOEDU.f 
86pg6lco_1_1 c-87396644-20140817-00 hc_ENMOEDU.dat lkENMOEDU orapwENMOEDU spfileENMOEDU.ora
5.再次 遠端透過密碼驗證    成功登入
[oracle@ENMOEDU dbs]$ sqlplus sys/oracle@ENMOEDU as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 17 22:42:42 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SYS@ENMOEDU>
總結 :1.口令檔案可有可無,一般情況下是有的
            2.密碼檔案的格式: orapw+例項名   (也就是  .bash_profile 檔案中的  $ORACLE_SID =例項名)
            3.注意建立口令檔案時,等號兩端不能有空格
             


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1253405/,如需轉載,請註明出處,否則將追究法律責任。

相關文章