接続ステートメント「sqlplus /」でsqlplusがユーザー名とパスワードをどのように取得するのか疑問に思っていました。
別のユーザーで「sqlplus /」に接続したい場合、構成を変更するにはどうすればよいですか。ぎこちないかもしれませんが、私のスクリプトでは "sqlplus /" がハードコードされており、これを変更することはできません。同じコマンドを使用して別のユーザーに接続したいだけです。
Oracleのドキュメントから:
/
オペレーティングシステム認証を使用したデフォルトのログオンを表します。デフォルトのログオンでは、SQL * Plusは通常、ユーザー名OPS $ nameを使用してログインを試みます。ここで、nameはオペレーティングシステムのユーザー名です。プレフィックス「OPS$」は、他の任意のテキスト文字列に設定できることに注意してください。
たとえば、INIT.ORAパラメータファイルの設定をLOGONnameまたはUSERIDnameに変更したい場合があります。オペレーティング・システム認証については、 『Oracle9i Database管理者ガイド』を参照してください。
したがって、オペレーティングシステムの詳細を使用してOracleユーザー名を作成します。つまり、任意の名前を設定することはできません。
プレフィックスを指定するためのOracle初期化パラメータはOS_AUTHENT_PREFIX
、およびそのデフォルト値idOPS$
です。
sqlplusを呼び出すスクリプトを変更できない場合は、次の行に沿って、Oracleスクリプトの前のパスに独自のsqlplusスクリプトを挿入することができます(完全にはテストされていません)。
#!/bin/bash
if [[ "$1" != "/" ]] ; then
$ORACLE_HOME/bin/sqlplus "$@"
exit
fi
shift
$ORACLE_HOME/bin/sqlplus $MY_ORA_USER/$MY_ORA_PWD "$@"
これはスクリプトによって呼び出されるものであり、最初のパラメーターをチェックして、それが単純であるかどうかを確認します/
。そうでない場合は、sqlplus
同じパラメータで実数を呼び出します。
それ以外の場合は、を環境変数/
から形成されたユーザー/パスワードに置き換えます。MY_ORA_*