解決SYS本地登入或遠程登入引起ORA-01031錯誤方法

來源:互聯網
上載者:User
如果資料庫執行個體安裝在伺服器A上,你用管理員權限Administrator登入後,使用SQL> conn system/manage as sysdba登入 沒有問題。但是如果你在伺服器A上建立一個etl帳號,使它率屬於Remote Desktop Users 和Users 組,如下所示:
此時你用sys帳號登入資料庫時,就會報ORA-01031:insufficient privileges錯誤,退出etl帳號,用管理員登入給etl帳號賦予率屬於Oracle DBA Group的許可權
然後用etl帳號登入,問題解決了,如果你賦予etl帳號Administrator 群組許可權,但是沒有ora_dba許可權,如下所示, 結果會怎樣?答案是依然會報許可權不足的錯誤
 
情況二:此時我在遠程機器B上,我使用sys帳號遠程登入時報ORA-01031:insufficient privileges或ORA-01017: invalid username/password; logon denied錯誤。
首先去檢查下sqlnet.ora檔案下是否有SQLNET.AUTHENTICATION_SERVICES= (NTS)設定,如何已經配置了這個選項。那麼我們接下來檢查下一下密碼檔案參數
很明顯密碼檔案存在,如果查詢沒有記錄,則說明密碼檔案不存在,需要重建密碼檔案,有時候我們確實是sysdba的許可權,為什麼登入卻提示你的許可權不夠叻?這裡的問題可能出現在密碼檔案裡,由於你的密碼檔案缺損或者不存在,而ORALCE執行個體對sysdba的許可權是根據這個密碼檔案來判斷的,為什麼這樣做呢?如果我們的資料庫沒有OPEN,那麼對於的一些動態視圖是不能開啟的,所以ORACLE必須把這些使用者的口令和USERNAME放在一個獨立的檔案裡,這樣在資料庫還不是OPEN的狀況寫,有個地方判斷了。使用orapwd命令重建密碼檔案。orapwd命令的用法如下。
接下來查看系統參數remote_login_passwordfile
如果VALUE值不是EXCLUSIVE,那麼需要設定參數remote_login_passwordfile的值為EXCLUSIVE,有一次我檢查配置了上述所有配置後,發現都符合,在遠程用SQL*PLUS登入後,居然報如下錯誤
ORA-01017: invalid username/password; logon denied錯誤,很是納悶,仔細檢查了所有配置後,最後發現居然是伺服器B的Guest帳號被禁用了(如下所示)

啟用了Guest帳號,然後在機器A上用sys帳號登入,此時又報ORA-01031: insufficient privileges,趕緊給Guest帳號添加ora_dba使用者組,問題解決了。

聯繫我們

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