OEM中无法用sys用户登录
開始準備通過實驗的方式,把這段日子來看的內容好好的實踐一翻。于是乎打開了OEM,卻神奇的發現不能用sys用戶登錄了,與此同時,其他的非sysdba用戶可以登錄。但是通過sqlplus可以用同樣的密碼作為sysdba登錄,這是怎么一回事呢?
?
sysdba或sysoper用戶的登錄有兩種方式:一是通過os認證,二是通過密碼文件驗證。
權限驗證的大致順序如下:
???????1.根據$ORACLE_HOME/NETWORK/ADMIN下的sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES值來判定是進行os驗證還是密碼文件驗證。 (NTS)表示為os驗證;none或文件中沒有該參數表示密碼文件驗證。
?????? 2.os驗證,根據當前用戶的用戶組判斷是否具有sysdba權限,驗證失敗則進行密碼文件驗證
?????? 3. 密碼文件驗證,參數REMOTE_LOGIN_PASSWORDFILE的值以及密碼文件是否存在決定個驗證的結果
?
REMOTE_LOGIN_PASSWORDFILE 這個參數10.2的時候可選值有兩個NONE,SHARED; 11G開始多了個exclusive(默認值)
????? shared:One or more databases can use the password file. The password file can contain SYS as well as non-SYS users.
????? exclusive:The password file can be used by only one database. The password file can contain SYS as well as non-SYS users.
??????none: Oracle ignores any password file. Therefore, privileged users must be authenticated by the operating system.
?
?
按照上面的順序,先查看sqlnet.ora文件,發現SQLNET.AUTHENTICATION_SERVICES的值為nts,說明當前使用的是os認證。因為目前的認證原因,所以使用錯誤的密碼只要是sys用戶也能登錄成功。所以猜測這次錯誤的原因是因為密碼錯誤?
事實上因為很久沒碰了,忘記了具體的密碼,于是乎更改密碼 alter user sys identified by new_password; 這之后再次登錄,成功。
?
該類用戶修改密碼也有兩種方法:
????????alter user sys identified by new_password;
?????? ?orapwd file=PWDko.ora password=new_password entries=10 (一旦執行后,該密碼文件中刪除了除sys用戶外的所有用戶,對于曾有該權限的用戶需要重新賦權)
?
密碼文件的路徑:
linux:$ORACLE_HOME/dbs/orapw$ORACLE_SID??
windows:$ORACLE_HOME/database/PW%ORACLE_SID%.ora
查看密碼文件中數據的狀態可以查詢v$pwfile_users視圖
該表中的數據會隨著 grant sysdba to username而自動同步,列出擁有sysdba權限的用戶
?
----------------------------------------------------------------------------------------------------------
翻了一下以前的筆記,曾在使用pl/sql developer時,這方面遇到錯誤: ORA-01017:invalid username/password;logon denied
分析思路:檢查密碼-->檢查驗證方法-->檢查REMOTE_LOGIN_PASSWORDFILE-->檢查密碼文件情況
?
posted on 2013-07-05 09:41?Ivo落班 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/archersun/p/3173069.html
總結
以上是生活随笔為你收集整理的OEM中无法用sys用户登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改变ie浏览器的收藏夹位置
- 下一篇: QCopChannel的用法