2012-05-08 47 views
2

我想知道sqlplus如何在連接語句「sqlplus /」中使用用戶名和密碼。「sqlplus /」如何工作

如何更改配置,如果我想用不同的用戶連接「sqlplus /」。它可能看起來很尷尬,但在我的腳本「sqlplus /」是harcoded,我們不能改變這一點。只是我想用不同的用戶使用相同的命令連接。

+0

SQLPLus啓動後,您是否允許運行自己的命令?然後你可以使用SQL> connect「user/passw @ db」 – Rene

+0

即使'sqlplus'是硬編碼的,你也可以創建一個名稱相同的包裝器,並把它放在'PATH'中。 – tripleee

回答

3

從Oracle文檔:

/

表示在使用操作系統驗證默認登錄。在默認登錄中,SQL * Plus通常會嘗試使用用戶名OPS $ name登錄您,其中name是您的操作系統用戶名。請注意,前綴「OPS $」可以設置爲任何其他字符串。

例如,您可能希望將您的INIT.ORA參數文件中的設置更改爲LOGONname或USERIDname。有關操作系統認證的信息,請參見「Oracle9i數據庫管理員指南」。

因此,它使用您的操作系統詳細信息來構建您的Oracle用戶名,這意味着您可能無法設置任意名稱。

用於指定前綴的Oracle初始化參數爲OS_AUTHENT_PREFIX,其默認值爲OPS$

有一件事你可能做的,如果你不能改變它調用SQLPLUS,是插入你自己 sqlplus的腳本,在Oracle的前一個路徑,沿(不徹底的測試)行腳本:

#!/bin/bash 
if [[ "$1" != "/" ]] ; then 
    $ORACLE_HOME/bin/sqlplus "[email protected]" 
    exit 
fi 
shift 
$ORACLE_HOME/bin/sqlplus $MY_ORA_USER/$MY_ORA_PWD "[email protected]" 

然後這將是您的腳本調用的那個,它會檢查第一個參數,看它是否是簡單的/。如果不是,它會使用相同的參數調用真實的sqlplus

否則,它將用由MY_ORA_*環境變量形成的用戶/密碼替換/