- 締切済み
特権ユーザーって?
Oracle9iで質問です。 OS認証が設定されていて、 サーバー上のsqlplusから" / as sysdba"でログインすると、 「アイドルインスタンスに接続しました。」と表示されました。 DB名とか指定していないですが、 これはどのDBに繋がったんですか? 1DB1インスタンスの構成なので、 この場合に限って指定する必要はないとかでしょうか? nDBnインスタンスの場合は? その後、startupし、テーブルを作ってみたところ、OWNERはSYSになっていました。 これは、SYSDBA権限でOracleに認証された人は、 DB内ではSYSとして扱われるという事ですか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
> 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 として扱われます。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>これはどのDBに繋がったんですか? DB接続文字列(@~)を指定しない場合、デフォルトインスタンスに接続します。 基本的に、環境変数ORACLE_SIDか、レジストリのORACLE_SIDで決まります。 なお、この場合、リスナは経由していません。 >この場合に限って指定する必要はないとかでしょうか? >nDBnインスタンスの場合は? 特別なことはなく、sqlplus scott/tiger とすれば、デフォルトインスタンスへ scottでつながります。 複数のインスタンスがあっても、ORACLE_SID次第で何処かに接続されます。