プロが教えるわが家の防犯対策術!

Oracle DatabaseにSQP*Plusを使って、接続する際に、
接続識別子を入力すると思うのですが、
接続識別子とはどういう役割をしているのでしょうか?
また、接続識別子を使う場合と使わない場合では、どう違うのでしょうか?
接続識別子がいまいち理解できませんでした・・・

A 回答 (3件)

>接続識別子とはどういう役割をしているのでしょうか?



接続すべきオラクルサービスの識別と接続プロトコルの決定です。
通常は、tnsnames.oraに記述した識別名(=の左側の文字列)を指定しますが、
オラクルサービスの識別とプロトコルの決定が目的の指定なので、tnsnames.oraの右側に書いてある
長い記述をそのまま指定しても接続できます。
例えば、
sqlplus scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hoge)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=hogedb)))
長い記述が大変なので、tnsnames.oraで簡略名を定義し、接続先を簡易に指定できると思えば宜しいかと思います。

>接続識別子を使う場合と使わない場合では、どう違うのでしょうか?

接続識別子を指定しない場合、環境により動作が異なります。
サーバでもクライアントも、環境変数(Win版はLOCAL、UNIX版はTWO_TASK)が設定されていれば、
その値を指定したものとして接続します。
例えば、SET LOCAL=HOGEDBなら、sqlplus scott/tigerもsqlplus scott/tiger@HOGEDBも同じ動作をします。
環境変数LOCALやTWO_TASKが指定されていない場合、環境変数ORACLE_SIDやレジストリORACLE_SIDに従い
リスナーを経由しない接続を行います。
    • good
    • 0

#1 です。



>黒本で、DBAの勉強をしているのですが、
>オススメのサイトとかありませんか?

ご存知かもしれませんが、基本はやはり本家OTNでしょう。

Oracle Technology Network
http://www.oracle.com/technology/global/jp/index …

後は、こことかかな。

Oracle DBA, Oracle SQL and PL/SQL Tips
http://www.shift-the-oracle.com/
    • good
    • 0

⇒sqlplus uid/pwd@connstr


クライアントPCからサーバーに接続しに行く時は
「どこのサーバーのどのインスタンスに接続するのか」
が必要なので、接続識別子が必要です。

⇒sqlplus uid/pwd
自分のローカルPCにインスタンスがある(つまりサーバー側
で作業している)なら、ユーザーIDとパスワードだけで接続
できます。
    • good
    • 1
この回答へのお礼

ありがとうございます。
黒本で、DBAの勉強をしているのですが、
オススメのサイトとかありませんか?
(Oracleの管理担当を引き継ぐための勉強です)

お礼日時:2008/11/02 16:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!