Linux系統中,DBA一般使用oracle用戶登陸/訪問Linux操作系統,然後使用sqlplus命令登陸資料庫進行一些維護操作,如果由於某些特殊原因,系統管理員創建了一個db_support用戶,如果使用dba_support這個普通賬號登陸了Linux操作系統,如何使用sqlplus訪問資料庫 ...
Linux系統中,DBA一般使用oracle用戶登陸/訪問Linux操作系統,然後使用sqlplus命令登陸資料庫進行一些維護操作,如果由於某些特殊原因,系統管理員創建了一個db_support用戶,如果使用dba_support這個普通賬號登陸了Linux操作系統,如何使用sqlplus訪問資料庫呢?
首先,我們必須在當前用戶的主目錄下設置環境變數,在~/.bash_profile中加入下麵環境變數,例如:
export ORACLE_SID=gsp
export ORACLE_BASE=/opt/oracle19c
export ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
export PATH
執行source ~/.bash_profile使之生效。然後我們可以使用賬號密碼登陸資料庫。
$ sqlplus sys/****** as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 18 16:19:16 2023
Version 19.16.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
SQL>
在oracle用戶下可以使用下麵方式(系統認證登陸)登陸資料庫,但是,在db_support用戶下,使用下麵方式登陸資料庫會報ORA-01017錯誤
$sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 9 10:25:39 2023
Version 19.16.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied
那麼怎麼解決這個問題呢?其實導致這個錯誤的原因在於這個用戶沒有加入dba用戶組。 檢查這兩個用戶所屬的用戶組,發現dba_support賬號不在dba用戶組下麵,如下所示:
[oracle@db_01 ~]$ id uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
[dba_support@db_01 ~]$ id dba_support
uid=54322(dba_support) gid=54321(oinstall) groups=54321(oinstall)
切換到root用戶下,將dba_support加入dba用戶組後,這個問題解決了
#usermod -G dba dba_support