使用sys无法通过sqlplus或者sqldeveloper连接数据库
現(xiàn)象:
用sql developer或者sqlplus連接數(shù)據(jù)庫,提示:ORA-01017: invalid username/password; logon denied。
一般用戶可以連接,因為這些用戶是使用數(shù)據(jù)字典認(rèn)證的。
其它實例的sys用戶也用正常連接。
處理過程:
(1)之前密碼一直可用,周一上班發(fā)現(xiàn)不行,可能有人改了密碼,于是用oracle用戶登錄數(shù)據(jù)庫服務(wù)器,再使用OS認(rèn)證登錄數(shù)據(jù)庫,使用alter user sys identified by ****,修改密碼后,還是提示ORA-01017
(2)查看dba_users,sys的狀態(tài)是open。
(3)查看密碼文件是否丟失:
在單實例中,密碼文件的保存路徑為$ORACLE_HOME/dbs/orapwSID,發(fā)現(xiàn)文件沒丟失。
(4)查看v$pwfile_users:
SQL> select * from v$pwfile_users;
no rows selected
發(fā)現(xiàn)問題所有了,password文件中沒有了sys,其它兩個實例均有:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
(5)以為password file出問題了,于是重新建立一個
bash-4.1$ pwd
/opt/ORACLE/irms/product/10.2.0/db_1/dbs
bash-4.1$ orapwd file=orapwIRMS password=Ora_8109#2 entries=30;
(6)重新連接,問題依舊,查看初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE
NAME TYPE VALUE
------------------------------------ ------------------------------
remote_login_passwordfile string NONE
正常情況下應(yīng)該是EXCLUSIVE(默認(rèn)值)。
試圖修改
alter system set remote_login_passwordfile='EXCLUSIVE',修改失敗,原因為不能修改SCOPE='MEMORY'的情形,而修改SCOPE='SPFILE',則需要重啟實例,故放棄之。
原因分析:
可能是近期做的安全加固導(dǎo)致的問題,即取消了sys遠(yuǎn)程登錄
相關(guān)知識點:
數(shù)據(jù)庫認(rèn)證方式有以下幾種:
(1)操作系統(tǒng)身份認(rèn)證:以dba組的成員登錄操作系統(tǒng)
(2)口令文件身份認(rèn)證:以orapwSID中的密碼認(rèn)證,dba常用
(3)口令身份認(rèn)證:以數(shù)據(jù)字典中的密碼認(rèn)證,sys不能以此種方式認(rèn)證
(4)外部身份認(rèn)證:委托外部服務(wù)器
( 5 )全局身份認(rèn)證: LDAP 等總結(jié)
以上是生活随笔為你收集整理的使用sys无法通过sqlplus或者sqldeveloper连接数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中stdbool.h的使用
- 下一篇: Oracle学习计划