使用sys无法通过sqlplus或者sqldeveloper连接数据库
現象:
用sql developer或者sqlplus連接數據庫,提示:ORA-01017: invalid username/password; logon denied。
一般用戶可以連接,因為這些用戶是使用數據字典認證的。
其它實例的sys用戶也用正常連接。
處理過程:
(1)之前密碼一直可用,周一上班發現不行,可能有人改了密碼,于是用oracle用戶登錄數據庫服務器,再使用OS認證登錄數據庫,使用alter user sys identified by ****,修改密碼后,還是提示ORA-01017
(2)查看dba_users,sys的狀態是open。
(3)查看密碼文件是否丟失:
在單實例中,密碼文件的保存路徑為$ORACLE_HOME/dbs/orapwSID,發現文件沒丟失。
(4)查看v$pwfile_users:
SQL> select * from v$pwfile_users;
no rows selected
發現問題所有了,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)重新連接,問題依舊,查看初始化參數REMOTE_LOGIN_PASSWORDFILE
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE
NAME TYPE VALUE
------------------------------------ ------------------------------
remote_login_passwordfile string NONE
正常情況下應該是EXCLUSIVE(默認值)。
試圖修改
alter system set remote_login_passwordfile='EXCLUSIVE',修改失敗,原因為不能修改SCOPE='MEMORY'的情形,而修改SCOPE='SPFILE',則需要重啟實例,故放棄之。
原因分析:
可能是近期做的安全加固導致的問題,即取消了sys遠程登錄
相關知識點:
數據庫認證方式有以下幾種:
(1)操作系統身份認證:以dba組的成員登錄操作系統
(2)口令文件身份認證:以orapwSID中的密碼認證,dba常用
(3)口令身份認證:以數據字典中的密碼認證,sys不能以此種方式認證
(4)外部身份認證:委托外部服務器
( 5 )全局身份認證: LDAP 等總結
以上是生活随笔為你收集整理的使用sys无法通过sqlplus或者sqldeveloper连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中stdbool.h的使用
- 下一篇: SQL语句、PL/SQL语句、SQL*P