When upgrading a table/view
The upgrade plan is performed by the target user and not by the runtime repository user.
You must then give all according privileges to the target user to be able to perform an upgrade plan which will create and perform an update script.
An OWB admin script “grant_upgrade_privileges.sql” give the standard privileges but you may have to give more as for instance when you create public synonym.
Articles Related
Privileges Steps
Standard Privileges: grant_upgrade_privileges
From the admin script directory, you can find a script that grant for you the standard privileges:
OWB_HOME\owb\rtp\sql>sqlplus user/pwd@owbservice
SQL*Plus: Release 10.2.0.3.0 - Production on Tue Aug 17 14:49:08 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @grant_upgrade_privileges TARGET_USER
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Otherwise, during the updgrade file, you may find this message:
Description :
Runtime User : OWBREP
Started : 2010-08-17 14:42:45.0
Name Action Status Log
None INFORMATIONAL RPE-02257: The following Oracle Roles have not been Granted
to the Target User: 'SELECT_CATALOG_ROLE'
None INFORMATIONAL RPE-02258: The following Oracle Privileges have not been Granted to the Target User:
'EXECUTE ANY PROCEDURE' 'EXECUTE ANY TYPE' 'SELECT ANY DICTIONARY'
None INFORMATIONAL RPE-02259: Please run script <OWB-HOME>/owb/rtp/sql/grant_upgrade_privileges.sql
None Error oracle.sysman.vbo.VboDataSourceUpdateException
DBA
The DBA privilege is a checked by OWB and warns you in standard in the upgrade log file if the target user doesn't have it.
Upgrade log file
Start of main script
Executing script in direction: Proceed
Executing as user TARGET_USER
WARNING checking privs...User TARGET_USER does not have DBA privs.
-- The script will fail if it tries to perform operations for which you lack the appropriate privilege.
Others privileges
You may have to give to the target user others privileges such as DROP or CREATE SYNONYM because they are not standard and can cause an error.
SYNONYM
-- The script will fail if it tries to perform operations for which you lack the appropriate privilege.
-- *** There are RESOURCE WARNINGS in the script. ***
-- *** Fix problems before executing script. ***
-- Review the Impact Report.
--
-- Script Generation for OdbCMUpgradeAdapter_1282049403721
-- Plan was last modified: 17-aug-2010
-- Target destination db : STG
-- Generation started at: 17-aug-2010
-- Generation finished at: 17-aug-2010
-- Some unique constraints are being dropped because the supporting index of these constraints cannot be dropped
-- if the constraints exist.
-- These constraints will be recreated, if necessary, after the indexes that support them are recreated.
-- The constraint was being deleted anyway.
DROP SYNONYM "PUBLIC"."STG_DIM_VORDERINGEN"
ORA-01031: insufficient privileges
CONNECT AS
DROP SYNONYM "PUBLIC"."DWH_DIM_VORDERINGEN"
CONNECT AS: DWH
REVOKE REFERENCES ON "DWH"."DWH_DIM_VORDERINGEN" FROM "DM"
CONNECT AS: DWH
REVOKE SELECT ON "DWH"."DWH_DIM_VORDERINGEN" FROM "DM"
CONNECT AS: OBI_DWH
ORA-01031: insufficient privileges
Example of Upgrade Script
With existent synonym on the table
-- *** There are WARNINGS in the script. ***
-- Review the Impact Report.
--
-- Script Generation for OdbCMUpgradeAdapter_1282051076955
-- Plan was last modified: 17-aug-2010
-- Target destination db : STG
-- Generation started at: 17-aug-2010
DROP INDEX "STG"."STG_VORDERINGEN_PK"
DROP SYNONYM "PUBLIC"."STG_VORDERINGEN"
CHANGE USER STG
REVOKE SELECT ON "STG"."STG_VORDERINGEN" FROM "OBI_DWH"
-- Renaming the table for the purpose of recovery. Cleanup will remove the old table.
CHANGE USER STG
RENAME "STG_VORDERINGEN" TO "STG_DIM_VORDERINGEN$$OCMrecove"
CREATE TABLE "STG"."STG_VORDERINGEN" ("CUSTOMER_TRX_ID"
NUMBER(15), "ORG_ID" NUMBER(15), "VORDERING_NUMMER"
VARCHAR2(30 byte), "PARKEERVORDERING_ID" NUMBER,
"EXT_VORD_REFERENTIE" VARCHAR2(30 byte), "VORDERING_TYPE"
VARCHAR2(80 byte), "FAKTTYPE_INTERN_EXTERN" VARCHAR2(50 byte),
"DATUM_VORDERING" DATE, "DAGTEKENING" DATE,
"OORSPR_VERVAL_DATUM" DATE, "BELASTINGJAAR" NUMBER,
"OPSCHORTEN" VARCHAR2(3 byte), "REDEN_OPSCHORTING"
VARCHAR2(100 byte), "STATUS" VARCHAR2(30 byte),
"REDEN_CREDITERING" VARCHAR2(80 byte), "LAST_UPDATE_DATE"
DATE, "RUN_ID" NUMBER, "RUN_DATE" DATE, "BELASTINGSOORTEN"
VARCHAR2(100), "BETAALSTATUS" VARCHAR2(10))
TABLESPACE "DWH_DATA" PCTFREE 10 PCTUSED 0 INITRANS 1
MAXTRANS 255
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
MONITORING
INSERT /*+ APPEND */
INTO "STG"."STG_VORDERINGEN" ( "CUSTOMER_TRX_ID",
"ORG_ID", "VORDERING_NUMMER", "PARKEERVORDERING_ID",
"EXT_VORD_REFERENTIE", "VORDERING_TYPE",
"FAKTTYPE_INTERN_EXTERN", "DATUM_VORDERING", "DAGTEKENING",
"OORSPR_VERVAL_DATUM", "BELASTINGJAAR", "OPSCHORTEN",
"REDEN_OPSCHORTING", "STATUS", "REDEN_CREDITERING",
"LAST_UPDATE_DATE", "RUN_ID", "RUN_DATE" )
SELECT "CUSTOMER_TRX_ID", "ORG_ID", "VORDERING_NUMMER",
"PARKEERVORDERING_ID", "EXT_VORD_REFERENTIE",
"VORDERING_TYPE", "FAKTTYPE_INTERN_EXTERN", "DATUM_VORDERING",
"DAGTEKENING", "OORSPR_VERVAL_DATUM", "BELASTINGJAAR",
"OPSCHORTEN", "REDEN_OPSCHORTING", "STATUS",
"REDEN_CREDITERING", "LAST_UPDATE_DATE", "RUN_ID", "RUN_DATE"
FROM "STG"."STG_VORDERINGEN$$OCMrecove"
COMMIT
CHANGE USER STG
GRANT SELECT
ON "STG"."STG_VORDERINGEN" TO "OBI_DWH"
CREATE PUBLIC SYNONYM "STG_VORDERINGEN"
FOR "STG"."STG_VORDERINGEN"
CREATE UNIQUE INDEX "STG"."STG_VORDERINGEN_PK"
ON "STG"."STG_VORDERINGEN" ("CUSTOMER_TRX_ID", "ORG_ID")
TABLESPACE "USERS" PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
-- Generation finished at: 17-aug-2010
-- Following code has been generated by OWB.
-- It will be deployed only after
-- a SUCCESSFUL 'Commit' action.
COMMENT ON COLUMN STG_VORDERINGEN.BELASTINGSOORTEN IS 'Lijst Aggregate van Segment1 van Vorderingen Regels Items'
COMMENT ON COLUMN STG_VORDERINGEN.BETAALSTATUS IS 'Betaal Status van de vordering'
Rename of a column
You can see that the script is executed by the target user STG.
This script allow two modifications to be done:
- a column was rename (from EXTENSION_ID to BEZWAAR_REDENEN_ID)
- a column was added (the LAST_UPDATE_DATE column).
-- Start of main script
-- Executing script in direction: Proceed
-- Executing as user STG
-- ...
CREATE TABLE "STG"."STG_BEZWAAR_REDENEN$$OCMrecove" ( "OCM$$ROWID" ROWID, "BEZWAAR_REDENEN_ID" NUMBER)
ALTER TABLE "STG"."STG_BEZWAAR_REDENEN$$OCMrecove" NOLOGGING
INSERT /*+ APPEND */ INTO "STG"."STG_BEZWAAR_REDENEN$$OCMrecove" ( "OCM$$ROWID", "BEZWAAR_REDENEN_ID" ) SELECT ROWID,
"BEZWAAR_REDENEN_ID" FROM "STG"."STG_BEZWAAR_REDENEN"
COMMIT
ALTER TABLE "STG"."STG_BEZWAAR_REDENEN$$OCMrecove" LOGGING
ALTER TABLE "STG"."STG_BEZWAAR_REDENEN" ADD ("EXTENSION_ID" NUMBER, "LAST_UPDATE_DATE" DATE)
ALTER TABLE "STG"."STG_BEZWAAR_REDENEN" DROP ("BEZWAAR_REDENEN_ID") CASCADE CONSTRAINTS
-- Starting cleanup of recovery tables...
DROP TABLE "STG"."STG_BEZWAAR_REDENEN$$OCMrecove"
-- Completed cleanup of recovery tables.
Support
RTC-5270 followed with a RPE-02238 in the log
When you get this message:
and this message in the deployment log
RPE-02238: The impact report generated for this upgrade contains error(s). The script will not succeed when executed.
Please review the report and script and make the appropriate changes before performing upgrade again.
it likes that it's a bug because you get no impact report and that the generated script is good.
To overcome this problem, you can try to:
- get the generated script in the “Script Tab”
- connect as the target user
- and to start it.
Control the generated script before to start it