"CREATE ROLE exp_full_database" error when calling catalog.sql
537605Nov 29 2006 — edited Nov 29 2006hello.
I just installed Oracle 10.2.0.1 on Solaris 8. Trying to create a database manually,
1) created init<INSTANCE>.ora
2) issued Create Database command
3) executed catalog.sql
How come I got these errors?
==========================
CREATE ROLE exp_full_database
*
ERROR at line 1:
ORA-01921: role name 'EXP_FULL_DATABASE' conflicts with another user or role
CREATE ROLE imp_full_database
*
ERROR at line 1:
ORA-01921: role name 'IMP_FULL_DATABASE' conflicts with another user or role
==========================
I opened catexp.sql (which was called by catalog.sql) and read in the comments that:
Expect ORA-1921 for CREATE ROLE exp_full_database if this file is run
as part of the migration script and the role existed in the previous
release. Dropping will require DBA to regrant the role.
I checked the existing roles using "SELECT * FROM user_role_privs;".
Indeed, exp_full_database and imp_full_database roles exist already.
But, this is a fresh Oracle installation and database creation, and not a migration.
Then, I read somewhere that sql.bsq (default value of initsql_file hidden
parameter) is executed automatically when creating a database by Oracle.
Upon checking sql.bsq, aside from catexp.sql, it also seems to have "CREATE ROLE"
of imp/exp_full_database. So, sql.bsq was responsible in creating these roles.
Is my conclusion correct?
With further investigation, in http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14266/admusers.htm
[Oracle® Database Security Guide (10.2), 11. Administering User Privileges, Roles, and Profiles],
"Table 11-1 Predefined Roles" lists EXP/IMP_FULL_DATABASE to be
created by CATEXP.SQL and not SQL.BSQ.
Everything has been contradicting. Hope someone can shed some light.
Thanks!