- ベストアンサー
パスワード認証について
初心者です。 現行では、 ログイン時に「conn / as sysdba」でログインできます。 これって、誰でもsysdba権限でログインできるってことですか? だとしましたら、それをやめたいのですが、パスワード認証の方法を使えばできるのでしょうか? 本やwebサイトを見てやっているのですが、「conn / as sysdba」でログインできてしまい、うまくいきません。 どうしたらいいのでのしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
No.5-補足への回答です。 > ご返答のリモートからの権限付き接続とは、例を言うと、社内LANで > つながっているサーバーに遠隔からアクセスする場合でしょうか? その通りです。 > クライアントのパスワードファイルを見に行くのか、サーバーの > パスワードファイルを見に行くのかどちらでしょうか? データベースが存在するサーバー上のファイルを見にいきます。
その他の回答 (5)
No.4-補足への回答です。 > orapwd file=<fname> password=<password> entries=<users> > のパスワードは参照されるのでしょうか? > このファイルは何のためのものなのでしょうか? パスワードファイルはリモートからの権限付き接続を行う場合に 使用されます。(SYSDBA、SYSOPER指定の接続です) 説明が「データベース管理者ガイド」に記載されているので そちらを参照下さい。(9iR2でしたら1-15に記載されています)
No.2-補足への回答です。 >パスワードファイルを見真似でorahome\dbs\orapwd<SID>で作成しましたが >これを参照している様子がありません。 >別のパスワード(インストール時のパスワード)になっています。 まず初期化パラメータ「remote_login_passwordfile」が 正しく設定されている事(noneではない事)を確認して下さい。 上記の初期化パラメータが正しく設定されていれば ALTER USER文でパスワードを変更する事により データディクショナリとパスワードファイルの両方に反映されるはずです。 #途中からパスワードファイルを追加するとパスワードって 同期されないままなんですねぇ…知らなかったです。
補足
ご返答ありがとうございます。 ALTER USER文でパスワードの変更できました。 パスワードの変更はできました。 ところで orapwdで作成するパスワード orapwd file=<fname> password=<password> entries=<users> のパスワードは参照されるのでしょうか? このファイルは何のためのものなのでしょうか? 教えていただけませんでしょうか? よろしくお願いします。
- entree
- ベストアンサー率55% (405/735)
> [変更前]-OS認証有り > SQLNET.AUTHENTICATION_SERVICES= (NTS) > [変更後]-OS認証無し > SQLNET.AUTHENTICATION_SERVICES= (NONE) この方法でも OS 認証をやめることができるでしょうが、sqlnet.ora ファイルは oracle ユーザが読み書きできるファイルなので、このファイルで制限してもセキュリティ上は全く効果がありません。(オーナーを root にしてしまえばよいのかもしれませんが・・・) そこで、あまり紹介されていませんが、最も簡便かつ協力な方法があります。oracle ユーザの二次グループから dba や oper を剥奪してしまえばよいのです。これで oracle ユーザは OS 認証できなくなります。 ただし、Oracle 製品をインストールするときに一時グループとして dba を指定していた場合はこの方法が使えません (デフォルトインストールでは oinstall になっているはずです)。
>「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>で作成しましたが、これを参照している様子がありません。別のパスワード(インストール時のパスワード)になっています。学習の意味で、パスワードファイル認証を知りたいので、この疑問にお答えいただけませんでしょうか?
こんにちは。 回答ですが、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 と出て、どのユーザー名でも同じでした。 どうでしょうか?
補足
ご返答ありがとうございます。 ご返答のリモートからの権限付き接続とは、例を言うと、社内LANでつながっているサーバーに遠隔からアクセスする場合でしょうか? クライアントのパスワードファイルを見に行くのか、サーバーのパスワードファイルを見に行くのかどちらでしょうか?