データベース作成後になぜ pupbld.sql を実行するのか?

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を使わない