dポイントプレゼントキャンペーン実施中!

Oracle9iで質問です。

OS認証が設定されていて、
サーバー上のsqlplusから" / as sysdba"でログインすると、
「アイドルインスタンスに接続しました。」と表示されました。
DB名とか指定していないですが、
これはどのDBに繋がったんですか?
1DB1インスタンスの構成なので、
この場合に限って指定する必要はないとかでしょうか?
nDBnインスタンスの場合は?

その後、startupし、テーブルを作ってみたところ、OWNERはSYSになっていました。
これは、SYSDBA権限でOracleに認証された人は、
DB内ではSYSとして扱われるという事ですか?

A 回答 (2件)

> DB名とか指定していないですが、


> これはどのDBに繋がったんですか?

Windows の場合は DBCA (Database Configuration Assistant) でインスタンスを最初に作成したときに、そのインスタンスの SID がレジストリに書き込まれるようになっていたと思います。

つまり、1つしかインスタンスが存在しない場合、そこに接続されることになります。2つ以上存在する場合、または UNIX 環境の場合は、環境変数 ORACLE_SID を設定する必要があります。Windows の場合でも環境変数 ORACLE_SID を設定することで、レジストリに設定されている SID を上書きすることができます。

また、Windows の場合は DOS プロンプトから、
set ORACLE_SID=orcl
などとしてから、sqlplus を起動することで、さらに環境変数の内容を上書きして、別のインスタンスに接続することもできます。

> この場合に限って指定する必要はないとかでしょうか?

上記でも説明しているように、Windows の場合では、レジストリに設定されている ORACLE_SID のインスタンスに接続する場合は必要ないということになります。

UNIX 環境の場合には必ず環境変数 ORACLE_SID の設定が必要になります。

> nDBnインスタンスの場合は?

リモート先のデータベースに接続するためには sqlplus scott/tiger@connect_string のように、@ マークの後ろに接続文字列 (tnsnames.ora ファイルと関連付けられている) を記述する必要があります。

また、オラクルでは、1つのインスタンスに複数のデータベースを作成することはできません。

> その後、startupし、テーブルを作ってみたところ、OWNERはSYSになっていました。
> これは、SYSDBA権限でOracleに認証された人は、
> DB内ではSYSとして扱われるという事ですか?

そういうことです。SYSDBA 権限で認証された人は、いかなるユーザでも SYS として扱われます。同様に、SYSOPER 権限で認証された人は、PUBLIC として扱われます。
    • good
    • 0

>これはどのDBに繋がったんですか?



DB接続文字列(@~)を指定しない場合、デフォルトインスタンスに接続します。
基本的に、環境変数ORACLE_SIDか、レジストリのORACLE_SIDで決まります。
なお、この場合、リスナは経由していません。

>この場合に限って指定する必要はないとかでしょうか?
>nDBnインスタンスの場合は?

特別なことはなく、sqlplus scott/tiger とすれば、デフォルトインスタンスへ
scottでつながります。
複数のインスタンスがあっても、ORACLE_SID次第で何処かに接続されます。
    • good
    • 0

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