Oracle でデータベースを手動*1で作成した場合、pupbld.sql を実行しないといけないらしい。実行しなかったらどうなるか試してみた。
データベースを作成して、catalog.sql と catproc.sql を実行した後、scott ユーザーを作成し、scott ユーザーでログインしてみると、
$ sqlplus scott/tiger SQL*Plus: Release 10.2.0.4.0 - Production on Tue May 26 01:20:38 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Error accessing PRODUCT_USER_PROFILE Warning: Product user profile information not loaded! You may need to run PUPBLD.SQL as SYSTEM Connected to: Oracle Database 10g Release 10.2.0.4.0 - Production
system ユーザーで pupbld.sql を実行しろって怒られた。実行を忘れててもこのメッセージ見ればわかるな。
実行してみよう。
$ sqlplus system/manager
SQL> @?/sqlplus/admin/pupbld
で、scott でログインしてみると、
$ sqlplus scott/tiger SQL*Plus: Release 10.2.0.4.0 - Production on Tue May 26 01:31:57 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Release 10.2.0.4.0 - Production SQL>
エラーが出なくなった。
これ以上深追いしても役に立ちそうもないし。今日はこのへんにしといてやろうw(池乃めだか師匠風)
[参考]
失敗しないデータベース作成方法:Oracleマイスター養成講座(5) - @IT
SQL*Plusセキュリティ
*1:dbcaを使わない