Oracle
如何在linux中使用sudo通過root執行sqlplus?
設想:
*oracle xe11g r2 已安裝(並在以 oracle 身份登錄時正常執行)。
*以使用者身份登錄,root
*將root添加到組oinstall和dba,如下所示:
#useradd -G oinstall root #useradd -G dba root
*環境變數ORACLE_HOME和ORACLE_SID設置如下:
#export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe #export ORACLE_SID=XE #export PATH=$ORACLE_HOME/bin:$PATH
並執行:
#sudo -u oracle sqlplus / as sysdba
輸出:
sudo: sqlplus: command not found
請指導我使用 sudo 通過 root 執行 sqlplus。
不是 Oracle 錯誤。
當然你可以把上面的變數放在
.bash_profile
of 中oracle
,但是當你像上面那樣使用 sudo 時,它不會被執行。[root@o71 ~]# tail -3 /home/oracle/.bash_profile export ORACLE_HOME=/u01/app/oracle/product/dbhome_1 export ORACLE_SID=ETALON export PATH=$ORACLE_HOME/bin:$PATH [root@o71 ~]# sudo -u oracle sqlplus / as sysdba sudo: sqlplus: command not found
解決此問題的眾多方法之一:
[root@o71 ~]# sudo -u oracle bash -c '. ~/.bash_profile; sqlplus / as sysdba' SQL*Plus: Release 18.0.0.0.0 - Production on Sun Oct 28 10:52:43 2018 Version 18.4.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.4.0.0.0 SQL>
我不喜歡
.bash_profile
用於設置 Oracle 環境,我建議使用或不會oraenv
自動執行的自定義腳本。