重新認識口令檔案
昨天一同事問起oracle口令檔案和OS驗證登入的問題,為此我做了如下一些測試,同時感謝此同事多次提出的問題,推動我進行深入研究。
ORACLE使用OS驗證方式登入時,是不經過口令檔案的,有無口令檔案都能正常登入。
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 09:31:56 2009
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 09:31:56 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
下面使用非OS驗證測試登入,註釋sqlnet.ora檔案中的SQLNET.AUTHENTICATION_SERVICES= (NTS),用sysdba登入如下:
不輸入使用者名稱口令時,無法登入,必須明確輸入使用者名稱口令,而且必須存在有效的口令檔案才能登入。
不輸入使用者名稱口令時,無法登入,必須明確輸入使用者名稱口令,而且必須存在有效的口令檔案才能登入。
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 09:34:48 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: 許可權不足
ORA-01031: 許可權不足
請輸入使用者名稱:
C:\>sqlplus sys/sys as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 09:40:21 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from v$pwfile_users;(此檢視資訊來自於口令檔案)
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
TEST TRUE TRUE
------------------------------ ----- -----
SYS TRUE TRUE
TEST TRUE TRUE
SQL> select username,password from dba_users;
USERNAME PASSWORD
------------------------------ ------------------------------
TEST 7A0F2B316C212D67
SYS 4DE42795E66117AE
.
.
.
------------------------------ ------------------------------
TEST 7A0F2B316C212D67
SYS 4DE42795E66117AE
.
.
.
檢視二進位制的口令檔案可以看到test的口令是7A0F2B316C212D67(test),說明一般情況下口令檔案與資料字典中的password是一致的。
為使這兩個地方儲存的口令不一致,我手動把口令檔案PWDorcl.ora改名為PWDorcl.ora.bak(如不能修改請退出所有sqlplus),用OS驗證登入後:
SQL> alter user test identified by ttt;
為使這兩個地方儲存的口令不一致,我手動把口令檔案PWDorcl.ora改名為PWDorcl.ora.bak(如不能修改請退出所有sqlplus),用OS驗證登入後:
SQL> alter user test identified by ttt;
使用者已更改。
SQL> select username,password from dba_users where username='TEST';
USERNAME PASSWORD
------------------------------ ------------------------------
TEST FFB4FF2D2CE750F9
------------------------------ ------------------------------
TEST FFB4FF2D2CE750F9
password得到改變,PWDorcl.ora.bak中記錄的test的password保持不變。
之後,將口令檔案PWDorcl.ora.bak改回原來的PWDorcl.ora(口令檔案中test的口令是test),仍然用非OS驗證登入測試:
****************************************************************************
C:\>sqlplus test/test as sysdba
****************************************************************************
C:\>sqlplus test/test as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 10:53:24 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
C:\>sqlplus test/ttt as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 10:53:31 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
請輸入使用者名稱:
****************************************************************************
此時進一步證明了在非OS驗證登入時,使用的口令來自於口令檔案中。
****************************************************************************
C:\>sqlplus test/test as sysdba
C:\>sqlplus test/test as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 11:03:30 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> conn test/test (此時口令取自資料字典,而字典中存放的口令是ttt)
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
警告: 您不再連線到 ORACLE。
SQL> conn test/ttt (此時口令取自資料字典)
已連線。
SQL> conn test/ttt as sysdba (此時口令取自口令檔案,而口令檔案中存放的口令是test)
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
警告: 您不再連線到 ORACLE。
SQL> conn test/test as sysdba (此時口令取自口令檔案)
已連線。
C:\>sqlplus test/ttt
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 11:10:21 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
C:\>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 11:10:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
請輸入使用者名稱:
C:\>sqlplus test/ttt as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 11:12:04 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
請輸入使用者名稱:
C:\>sqlplus test/test as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 3 11:12:14 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
****************************************************************************
****************************************************************************
結論:
在非OS驗證登入中,使用者使用sysdba身份登入,口令取自口令檔案,普通使用者登入,口令取自資料字典。
在非OS驗證登入中,使用者使用sysdba身份登入,口令取自口令檔案,普通使用者登入,口令取自資料字典。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17997/viewspace-621529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM認證與口令檔案ASM
- Oracle OS 認證, 口令檔案Oracle
- os認證和口令檔案!
- 關於os認證和口令檔案認證
- 關於os認證和口令檔案認證(轉)
- Oracle OS認證與口令檔案認證詳解Oracle
- 口令檔案
- os認證以及口令檔案的(引用warehouse的)
- os認證、口令檔案認證及兩個引數【轉】
- oracle os認證和口令檔案認證的簡要解析Oracle
- Oracle中兩種認證方式:OS認證與口令檔案認證Oracle
- 重建口令檔案
- Oracle ----口令檔案Oracle
- 引數檔案/口令檔案
- Oracle OS認證、口令檔案、密碼丟失處理Oracle密碼
- OS認證以及口令檔案的一點總結(轉)
- 重新認識CREATE DATAFILE命令
- Oracle 建立口令檔案 orapwdOracle
- XML口令檔案描述 (轉)XML
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- 認識Oracle DBFS檔案系統Oracle
- 重新認識 React 生命週期React
- 重新認識了下Entity FrameworkFramework
- 重新認識IT領導能力(轉)
- unix口令檔案介紹(轉)
- 認識 Linux 檔案屬性及檔案配置(轉)Linux
- 重新認識原型和原型鏈三原型
- 重新認識原型和原型鏈一原型
- 重新認識原型和原型鏈二原型
- 重新認識受控和非受控元件元件
- 【口令檔案】remote_login_passwordfileREM
- 怎樣使用orapwd新建口令檔案
- 用一個例項專案重新認識分散式系統分散式
- VM配置檔案Setting,GridFTP認識FTP
- cloudflare認識1(上傳檔案到桶)Cloud
- 重新認識Java微服務架構-認證服務Java微服務架構
- Java 混淆那些事(一):重新認識 ProGuardJava
- 重新認識 async/await 語法糖AI