2012-05-08 4 views
2

接続文 "sqlplus /"でsqlplusがユーザー名とパスワードをどのように受け取るのか疑問に思っていました。"sqlplus /"の動作方法

「sqlplus /」と別のユーザーで接続する場合は、どのように構成を変更できますか。私のスクリプト "sqlplus /"はharcodedであり、これを変更することはできません。ちょうど同じコマンドを使って別のユーザーと接続したい。 Oracleのドキュメントから

+0

SQLPLusが起動したら、独自のコマンドを実行できますか? SQL> connect "user/passw @ db" – Rene

+0

'sqlplus'がハードコーディングされていても、同じ名前のラッパーを作成し、それをあなたの' PATH'に先に入れることができます。 – tripleee

答えて

3

/

は、オペレーティング・システム認証を使用して、デフォルトのログオンを表します。デフォルトのログオンでは、SQL * Plusは通常、ユーザー名OPS $ nameを使用してログインしようとします.nameはオペレーティング・システムのユーザー名です。接頭辞 "OPS $"は他の文字列に設定できることに注意してください。

たとえば、INIT.ORAパラメータファイルの設定をLOGONnameまたはUSERIDnameに変更したい場合があります。オペレーティング・システム認証の詳細は、「Oracle9iデータベース管理者ガイド」を参照してください。

したがって、オペレーティングシステムの詳細を使用してOracleユーザー名を構成します。つまり、おそらく任意の名前を設定できません。

接頭辞を指定するOracle初期化パラメータは、OS_AUTHENT_PREFIXであり、デフォルト値はOPS$です。あなたあなたはSQLPLUSを呼び出すスクリプトを変更することができない場合、行う、(徹底的にテストされていない)の線に沿って、オラクルの1の前のパスであなた自身 SQLPLUSスクリプトを挿入することである可能性があり

一つのこと:

#!/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_*環境変数で構成されたユーザー/パスワードに置き換えます。

関連する問題