oracle10g中的sys使用者的驗證方式

來源:互聯網
上載者:User

---------------------------------------------------------------------------

---- 本文為andkylee個人原創,請在尊重作者勞動成果的前提下進行轉載;

---- 轉載務必註明原始出處
:
http://blog.csdn.net/andkylee

---



2010-08-10
18:19:57

---- 關鍵字: oracle sysdba sysoper驗證 os password file authentication

----------------------------------------------------------------------------

今天下午用手工寫create database命令的方式建立了一個測試庫demo,執行了catalog.sql,catproc.sql,pupbld.sql這三個指令碼後,也用orapwd工具建立了密碼檔案:

orapwd file=e:/oracle/db_1/database/orapwdemo.ora
password=db entries=10

 

因為那台機器上原本有一個oracle執行個體在跑,所以就沒有改listener.ora檔案的內容。

在測試庫demo的本機上串連執行個體demo的時候,沒有問題。

set oracle_sid=demo

sqlplus /nolog

conn / as sysdba

能夠連上!

C:/Documents and Settings/Administrator>set oracle_sid=demo<br />C:/Documents and Settings/Administrator>sqlplus /nolog<br />SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 10 17:28:21 2010<br />Copyright (c) 1982, 2005, Oracle. All rights reserved.<br />SQL> conn / as sysdba<br />已串連。<br />SQL> show parameter db_name<br />NAME TYPE VALUE<br />------------------------------------ ----------- ------------------------------<br />db_name string demo

 

但是在遠程電腦上,用system使用者可以串連,用sys串連的時候報錯:

SQL> conn sys/db@demo178 as sysdba
ERROR:
ORA-01031: insufficient privileges

 

解決辦法:

 

最後問題出在密碼檔案的名稱上。oracle 9i的時候密碼檔案以orapw
開頭,但是在oracle10g中以pwd
開頭。所以,到測試執行個體demo所在機器上,將e:/oracle/db_1/database/下的密碼檔案orapwdemo.ora名稱改為:pwddemo.ora。問題即可解決!

另外,將其他的密碼檔案,按照pwd$oracle_sid.ora改名後即可使用。不過,你要是事Crowdsourced Security Testing道密碼檔案的密碼。(這種方式可以省去用orapwd建立密碼檔案的過程,呵呵!)

 

通過以上的錯誤,可以看出:oracle在使用密碼檔案對sys使用者進行登入驗證的時候,會到$ORACLE_HOME/dbs/目錄下面找pwd$oracle_sid.ora這個檔案。如果找個該檔案,則再檢查密碼是否正確;否則,就不能驗證sys的有效性,也就報沒有足夠許可權的錯誤。

 

總結:

有必要回顧一下,oracle中的sys登入使用者的驗證方式。在oracle資料庫執行個體所在的本機上,當用sys使用者登入的時候,會首先選用作業系統驗證模式,如果當前作業系統的登入使用者屬於組dba(windows上位ora_dba),那麼驗證成功;否則,才會使用密碼驗證模式。

 

在本地系統使用作業系統層級驗證sys登入

下面示範一下,用telnet上一台裝有oracle10g執行個體名為demo的windows機器。使用的作業系統登入名稱為:sa,此使用者屬於ora_dba組。執行個體demo的sys使用者的密碼為:db。

在telnet下執行:net localgroup ora_dba 查看當前的登入使用者sa是否屬於該組。

C:/WINDOWS/system32>net localgroup ora_dba<br />別名 ora_dba<br />注釋<br />成員<br />--------------------------------------------------------------<br />Administrator<br />NT AUTHORITY/SYSTEM<br />sa<br />命令成功完成。<br />

可見,sa屬於oracle的ora_dba組。所以,在用sys串連資料庫的時候,oracle會優先使用作業系統層級的驗證。

C:/WINDOWS/system32>set oracle_sid=demo<br />C:/WINDOWS/system32>sqlplus /nolog<br />SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 10 17:47:02 2010<br />Copyright (c) 1982, 2005, Oracle. All rights reserved.<br />SQL> conn sys/dbaaa as sysdba<br />已串連。<br />SQL> conn / as sysdba<br />已串連。<br />SQL> conn sys as sysdba<br />輸入口令:<br />已串連。<br />SQL> show parameter db_name<br />NAME TYPE VALUE<br />------------------------------------ ----------- ------------------------------<br />db_name string demo<br />SQL>

 

 

在本地系統使用密碼檔案來驗證sys登入

 

以另外一個使用者user作為登入telnet到oracle執行個體所在機器。user這個使用者不屬於ora_dba組。

執行:net user user 可以查看該使用者所屬的本機群組。

 

C:/WINDOWS/system32>set oracle_sid=demo<br />C:/WINDOWS/system32>sqlplus /nolog<br />SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 10 17:53:58 2010<br />Copyright (c) 1982, 2005, Oracle. All rights reserved.<br />SQL> conn / as sysdba<br />ERROR:<br />ORA-01031: insufficient privileges<br />SQL> conn sys/db as sysdba<br />已串連。<br />SQL> conn sys/dbaa as sysdba<br />ERROR:<br />ORA-01031: insufficient privileges

 

可以不屬於組ora_dba時,只能使用密碼檔案進行驗證。

 

 

在遠程系統使用作業系統層級驗證sys登入

此種方法需要在遠程系統上的“本地net服務名配置”中使用安全的tcp(即:tcps)網路通訊協定。不過,暫時還沒學會怎麼用。可能用這種方法的人比較少吧。

 

在遠程系統使用
密碼檔案來驗證sys登入

 

很好理解,在遠程系統上的“本地net服務名配置”中使用安全的tcp(不安全的tcp協議)網路通訊協定時,會使用密碼檔案驗證。

 

下面的圖片很直觀的介紹了sys使用者的驗證方式:

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.