山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

OracleのOS認証

OracleのOS認証をやってみました。

OS認証というのは、Oracleにログオンする

際通常はIDパスワードで認証しますが

OSにログオンしている時点で認証されている

とみなしてOracleログオン時のIDパスワードを

省略するというものです。


よく

sqlplus / as sysdba

といった形でログオンすると思いますが

これはOS認証です。


これを他のユーザーでやるには、OS認証用の

ユーザーを作ります。

ユーザー名はops$<OSユーザー名>で作成します。

ops$はデフォルト値で、設定により変更可能です。

create userでidentified externallyを指定します。

create user ops$oracle identified externally;

ログオンするにはconnect権限が必要なので

付与します。

grant connect to ops$oracle;


これでOracleサーバー上ではOS認証ができるように

なります。

sqlplus /

だけでログオンできるはずです。

別マシンからリモートでログオンしようと

する場合、デフォルトではできません。


これをできるようにするには初期化パラメータの

remote_os_authentをtrueに変える必要があります。

これはspfileを使っていてもインスタンス

再起動しないと反映されないようです。

alter system set remote_os_authent=true;

pfileを使っている場合はファイルを編集しましょう。


再起動するとリモートからもOS認証が

できるようになります。

ただしOracleのマニュアル上では推奨

されていません。

OS認証できるユーザー名がわかると

勝手に好きなマシンでユーザーを作って

ログオンできてしまうからでしょう。


しかし、ここまでやってOS認証が必要

ないことが判明しました・・。