windows平台下的oracle ORA-01031的解決方案

來源:互聯網
上載者:User

標籤:

今天下午遇到一個很怪異的問題,在windows平台下sqlplus  / as sysdba登陸資料庫,提示許可權不足,

當時就納悶了,sys使用者登陸資料庫還能許可權不足,問題出現了,就開始尋找解決方案唄

首先查看$ORACLE_HOME/network/admin/sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES項的配置資訊,

網上的大多數文章一致結論為:

        在windows平台上,SQLNET.AUTHENTICATION_SERVICES必須設定為NTS或者ALL才能使用作業系統驗證,不設定或者設定為其他都能使用作業系統驗證

        在linux平台上,SQLNET.AUTHENTICATION_SERVICES必須設定為ALL或者不設才能使用作業系統驗證,設定為其他則不能使用作業系統驗證

    好,那就先看sqlnet.ora

        我的SQLNET.AUTHENTICATION_SERVICES是NTS啊,那又是什麼原因呢,再找

 

再分析一下作業系統使用者登入作業系統後再訪問資料庫執行個體的行為。 www.it165.net

使用sysdba 身份串連資料庫執行個體,使用的認證方式是作業系統認證,而這一認證操作過程是作業系統根據它管理的資訊去校正該使用者是否可以串連資料庫的過程。 

因此,需要進一步分析的是,作業系統如果判斷oracle 使用者符合認證條件。很顯然,我們這裡的oracle 使用者的許可權被作業系統或者oracle 系統拒絕了。 

Oracle 認為,需要滿足下列條件的使用者才能使用系統認證方式串連資料庫執行個體。 

1 、系統使用者oracle 必須屬於一個特定的組 

該使用者必須屬於OSDBA 組才能以sysdba 身份登入。這裡的OSDBA 組在不同類型的操作系    統 上,名稱會不一樣。在unix 系統上名稱為“dba ” ,而在windows 系統上名稱則為“ORA_DBA ” 。 

 2 、sqlnet.authentication_services 的參數必須設定正確 

在unix 系統上,該參數值必須設定為ALL ,或者不設定;在windows 上,它必須設定為NTS 

再看看,當前登入使用者有沒有加入到ORA_DBA,

壞了,我當前以administrator使用者登陸,但是沒有將其加入到ORA_DBA組裡,原因找到

    將administrator使用者加入到ORA_DBA組裡

    再登陸資料庫:sqlplus   / as sysdba

        ok,問題解決!

windows平台下的oracle ORA-01031的解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.