Page 1 of 1

select privileges

Posted: Wed Dec 20, 2006 10:32 pm
by satya99
Hi,

when i am using a oracle enterprise stage i am getting the following error:

"Access to sys.dba_extents required but not available. please see the your dba for select privileges"

how to resolve this issue.

thanks in advance

Posted: Wed Dec 20, 2006 10:37 pm
by DSguru2B
As it says, see your dba. The enterprise stage needs more privileges than a regular OCI stage. Read your Oracle Enterprise Stage pdf file.

Posted: Thu Dec 21, 2006 12:47 am
by ray.wurlod
Or Search this forum. You are not the first to have encountered this. There are other SYS tables on which you require SELECT privilege.

Posted: Thu Dec 21, 2006 7:21 am
by keshav0307
before loading the oracle enterprise stage , datastage check if the table/view actually exist or not, thats the reason the database user must have select priviledge on some data dictionay tables

Posted: Thu Dec 21, 2006 9:08 am
by johnthomas
try disabling all the constraints on the target tables and select diasable constraints to false in the enterprise stage

Posted: Thu Dec 21, 2006 9:30 am
by DSguru2B
No constraint disabling is needed/advised. These constraints are there for a reason. Instead of a workaround, lets stick to what the guide says.

Posted: Thu Dec 21, 2006 10:30 am
by johnthomas
Try to get the select privleages as advised by dsguru2b . But in some situations we need to disable the constraints and enable the constraints later. You have to decide which is one is the best based on your specific
problem . 8)

Creating role for select privileges.

Posted: Wed Jan 24, 2007 9:29 am
by sajarman
Hi,

You can ask the DBA to create a role as below and grant that role to the user ids that use DataStage jobs.

CREATE ROLE DSXE;
GRANT SELECT on sys.dba_extents to DSXE;
GRANT SELECT on sys.dba_data_files to DSXE;
GRANT SELECT on sys.dba_tab_partitions to DSXE;
GRANT SELECT on sys.dba_objects to DSXE;
GRANT SELECT on sys.all_part_indexes to DSXE;
GRANT SELECT on sys.all_part_tables to DSXE;
GRANT SELECT on sys.all_indexes to DSXE;
Once the role is created, grant it to users who will run DataStage jobs, as
follows:
GRANT DSXE to <oracle user id>;

Cheers,
Sajarman.