Then, the most likely explanation is that the owner of the trigger
progra do not have enough right to the files.
Or maybe there is another copy of the trigger program out there that
gets called instead of the right one.
"Mackie, Roger L. (Precision Press)" <RLMackie@xxxxxxxxxxxxx>
2007-04-03 09:39 >>>
I used USRPRF(*OWNER). When that didn't work, I removed the triggers,
recompiled the external programs with USRPRF(*OWNER) and reapplied the
triggers. Here is a portion of the current DSPPGM output for one of the
external triggers. The other is the same:
User profile . . . . . . . . . . . . . . . . . : *OWNER
Use adopted authority . . . . . . . . . . . . : *YES
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[
mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Denis
Robitaille
Sent: Tuesday, April 03, 2007 8:23 AM
To: Midrange Systems Technical Discussion
Subject: RE: Rép. : Adopted authority and triggers
What keyword do you use when compiling the trigger to make them adopt
autority. Sometimes, we can confuse the USRPRF parameter and the AUT
parameter.
"Mackie, Roger L. (Precision Press)" <RLMackie@xxxxxxxxxxxxx>
2007-04-03 09:04 >>>
The trigger programs are strictly RPGLE with no SQL statements.
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[
mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Denis Robitaille
Sent: Tuesday, April 03, 2007 8:00 AM
To: Midrange Systems Technical Discussion
Subject: Rép. : Adopted authority and triggers
Trigger should be able to adopt autority. Maybe your trigger programs
uses dynamic SQL, if so, they must be compile with the option
DYNUSRPRF(*OWNER). By dynamic SQL, I mean that the SQL statement to run
is not known at compile time.
"Mackie, Roger L. (Precision Press)" <RLMackie@xxxxxxxxxxxxx>
2007-04-03 08:50 >>>
I am working on a project to give a specific user (LMTUSR) limited
access to our database. As currently designed, LMTUSR is excluded from
all but one library. The external stored procedures (SQLRPGLE and
RPGLE)
in that library adopt the owner's authority to access functions and
data in other libraries. As long as those functions are in modules that
only read the data, they work fine. However, the project requires
procedures to insert data in certain tables that have *BEFORE *INSERT
and *BEFORE *UPDATE external triggers.
From reading the security reference manual (we are on v5r3) I
understand
that triggers do not adopt authority from programs earlier in the call
stack. Changing the external trigger programs to adopt authority
(CHGPGM
PGM(EXTTRG) USRPRF(*OWNER)) did not allow LMTUSR to open the files for
update using adopted authority. When the triggers are disabled, UDFs
that access the files complete correctly. When the triggers are enabled,
the process fails with SQL0443 and CPF4236 "Not authorized to open.."
in
the job log. I could not find a parameter on the ADDPFTRG command to
adopt authority.
Did I miss something? While using adopted authority is there a way to
insert and/or update data into files with triggers? If not, I'll
probably use a data queue to get the data to a job whose user does have
authority. Or is there a better way?
Thanks,
Roger Mackie
As an Amazon Associate we earn from qualifying purchases.