[Oracle] OS認証ユーザーの作成 (Windows)

2013年1月13日

 Windows 上の Oracle でパスワード認証ではなく OS 認証によるユーザーを作るには、以下のようにします。

create user "OPS$PCNAMEUSERNAME" identified by externally;
grant CONNECT to "OPS$PCNAMEUSERNAME"

 PCNAME というのはコンピューター名で、USERNAME は OS認証の対象としたい Windows のユーザー名です。
 OPS$ というのは OS 認証のための接頭辞で、デフォルトは OPS$ です。以下で確認できます。

show parameter OS_AUTHENT_PREFIX;

 注意点としては全て大文字で記述することです。コンピューター名やユーザー名に小文字が入っていたとしても大文字で書く必要があります。でないと認証してもらえません。
 また、OPS$USERNAME、も不可です。Linux 系はそれで OK かもしれませんが(未確認)、Windows ではコンピューター名が必要です。
更に、コンピューター名とユーザー名を で区切る必要があるため、必ずダブルクォーテーションでくくる必要があります。
 Oracle のユーザー名は 30 文字が上限なので、接頭辞~ユーザー名までが 30 文字で完結するようにする必要もあります。

 ユーザー名が "OPS$PCNAMEUSERNAME" なので、スキーマ名も当然 "OPS$PCNAMEUSERNAME" となります。したがって、スキーマ名を指定してオブジェクトを指定したい場合は、

select "OPS$PCNAMEUSERNAME".TABLE1

となります。かっこわり…(汗

 といった感じなので、OS 認証を使う場合は、接続用のユーザーとオブジェクトがあるスキーマは分け、接続用のユーザー(スキーマ)にはオブジェクトは置かないようにした方がよい気がしますね…






カテゴリー: Oracle, データベース

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org