プロが教える店舗&オフィスのセキュリティ対策術

初心者です。

現行では、
ログイン時に「conn / as sysdba」でログインできます。
これって、誰でもsysdba権限でログインできるってことですか?
だとしましたら、それをやめたいのですが、パスワード認証の方法を使えばできるのでしょうか?
本やwebサイトを見てやっているのですが、「conn / as sysdba」でログインできてしまい、うまくいきません。
どうしたらいいのでのしょうか?

A 回答 (6件)

No.5-補足への回答です。



> ご返答のリモートからの権限付き接続とは、例を言うと、社内LANで
> つながっているサーバーに遠隔からアクセスする場合でしょうか?
その通りです。

> クライアントのパスワードファイルを見に行くのか、サーバーの
> パスワードファイルを見に行くのかどちらでしょうか?
データベースが存在するサーバー上のファイルを見にいきます。
    • good
    • 0

No.4-補足への回答です。



> orapwd file=<fname> password=<password> entries=<users>
> のパスワードは参照されるのでしょうか?
> このファイルは何のためのものなのでしょうか?

パスワードファイルはリモートからの権限付き接続を行う場合に
使用されます。(SYSDBA、SYSOPER指定の接続です)
説明が「データベース管理者ガイド」に記載されているので
そちらを参照下さい。(9iR2でしたら1-15に記載されています)

この回答への補足

ご返答ありがとうございます。

ご返答のリモートからの権限付き接続とは、例を言うと、社内LANでつながっているサーバーに遠隔からアクセスする場合でしょうか?

クライアントのパスワードファイルを見に行くのか、サーバーのパスワードファイルを見に行くのかどちらでしょうか?

補足日時:2005/10/12 11:33
    • good
    • 0

No.2-補足への回答です。



>パスワードファイルを見真似でorahome\dbs\orapwd<SID>で作成しましたが
>これを参照している様子がありません。
>別のパスワード(インストール時のパスワード)になっています。

まず初期化パラメータ「remote_login_passwordfile」が
正しく設定されている事(noneではない事)を確認して下さい。

上記の初期化パラメータが正しく設定されていれば
ALTER USER文でパスワードを変更する事により
データディクショナリとパスワードファイルの両方に反映されるはずです。

#途中からパスワードファイルを追加するとパスワードって
 同期されないままなんですねぇ…知らなかったです。

この回答への補足

ご返答ありがとうございます。

ALTER USER文でパスワードの変更できました。
パスワードの変更はできました。

ところで
orapwdで作成するパスワード

orapwd file=<fname> password=<password> entries=<users>

のパスワードは参照されるのでしょうか?
このファイルは何のためのものなのでしょうか?

教えていただけませんでしょうか?

よろしくお願いします。

補足日時:2005/10/12 08:39
    • good
    • 0

> [変更前]-OS認証有り


> SQLNET.AUTHENTICATION_SERVICES= (NTS)
> [変更後]-OS認証無し
> SQLNET.AUTHENTICATION_SERVICES= (NONE)

この方法でも OS 認証をやめることができるでしょうが、sqlnet.ora ファイルは oracle ユーザが読み書きできるファイルなので、このファイルで制限してもセキュリティ上は全く効果がありません。(オーナーを root にしてしまえばよいのかもしれませんが・・・)

そこで、あまり紹介されていませんが、最も簡便かつ協力な方法があります。oracle ユーザの二次グループから dba や oper を剥奪してしまえばよいのです。これで oracle ユーザは OS 認証できなくなります。

ただし、Oracle 製品をインストールするときに一時グループとして dba を指定していた場合はこの方法が使えません (デフォルトインストールでは oinstall になっているはずです)。
    • good
    • 0

>「connet / as sysdba」で起動してみますと


>ORA-01031: insufficient privileges
>と出ます。

OS認証無しの設定になっています。


>また、ユーザー名では
>ORA-01033: ORACLE initialization or shutdown in progress
>と出て、どのユーザー名でも同じでした。

これは質問内容とは別問題です。
インスタンスが起動中、もしくは停止中に接続しようとした場合に
出るエラーです。
数分経過した後に再接続を試みて接続できないようであれば
アラートログを参照する等して、接続できない原因を調査する必要が
あります。

この回答への補足

しばらくおいて再起動してみたところ
「connet / as sysdba」ではログインできなくなっていました。ひとまず目的は果たせました。ありがとうございました。

ところで、「sys/***** as sysdba」のパスワードなのですが、パスワードファイルを見真似で
orahome\dbs\orapwd<SID>で作成しましたが、これを参照している様子がありません。別のパスワード(インストール時のパスワード)になっています。学習の意味で、パスワードファイル認証を知りたいので、この疑問にお答えいただけませんでしょうか?

補足日時:2005/10/11 19:28
    • good
    • 0

こんにちは。


回答ですが、OS認証になっていませんか?
もしそうであれば、OS認証をなしに設定する事で解決するかと思います。

■SQLNET.ORAファイル
[変更前]-OS認証有り
SQLNET.AUTHENTICATION_SERVICES= (NTS)
[変更後]-OS認証無し
SQLNET.AUTHENTICATION_SERVICES= (NONE)

ご確認下さい。

この回答への補足

お返事ありがとうございます。
早速試してみました。
\(ORAHOME)\network\admin内のsqlnet.oraを

#SQLNET.AUTHENTICATION_SERVICES= (NTS)
SQLNET.AUTHENTICATION_SERVICES= (NONE)

のようにコメント付け無効にし、NONEにしてみました。
その後、SQLPLUSを起動し、
「connet / as sysdba」で起動してみますと

ORA-01031: insufficient privileges

と出ます。

また、ユーザー名では
ORA-01033: ORACLE initialization or shutdown in progress

と出て、どのユーザー名でも同じでした。
どうでしょうか?

補足日時:2005/10/10 22:40
    • good
    • 0

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

関連するカテゴリからQ&Aを探す