Anmelden

View Full Version : Berechtigung bei SBMJOB



horst
11-01-02, 09:48
hi *all,
folgendes *prb:
ein programm mit usrprf *owner(test) erstellt ruft crtdupobj auf.wird von user A aufgerufen.
berechtigung an der datei ist user Test *all.
A hat keine berechtigung. aufruf ist aber o.k., da pgm mit *owner s.o. aufgerufen wird.
wird aber ein sbmjob mit crtdupobj abgesetzt, stürtzt der submitted job mit berechtigungsproblem ab.
kennt *jemand eine lösung ??
vielen dank

horst

Rukober
11-01-02, 11:18
Hallo Horst,
bei uns (V4R5) gibt es damit überhaupt keine Probleme. Wir verwenden das Verfahren ebenso.

Wird das korrekte Programm aufgerufen (Libl)?
Welche Fehlermeldung wird denn gemeldet?
Gibst Du beim SMBJOB irgend einen User vor?
Gruss
Frank

horst
11-01-02, 12:27
hi frank,
in diesem cl habe ich einen sbmjob (stürtzt ab mit keine berechtigung für ...)
und den gleichen aufruf interaktiv (crtdupobj
funktioniert !!
bei sbmjob ist user *current übergeben.

gruss

horst

Rukober
11-01-02, 12:57
Nur damit wir uns richtig verstehen:
Programm PGM1
pgm
crtdupobj ....
endpgm
Umwandlung durch USER1 mit usrprf(*owner); USER1 hat alle notwendigen Rechte für die entspr. Objekte, die im crtdupobj angesprochen werden.
Nun Ausführung PGM1 durch USER99 (der braucht Ausführungsberechtigung für Objekt PGM1).
Interaktiv: call pgm1
Batch: sbmjob cmd(call pgm1)
In beiden Fällen wird zur Ausführungszeit auch die Berechtigung von USER1 verwendet.
Die genaue Meldung im Joblog wäre mal interessant.
Gruss
Frank

horst
14-01-02, 07:43
Hallo Frank,

das pgm sieht so aus:

SBMJOB CMD(CRTDUPOBJ OBJ(ANGVERAD) FROMLIB(QS36F) OBJTYPE(*FILE) TOLIB(QTEMP)) JOB(TEST)

CRTDUPOBJ OBJ(ANGVERAD) FROMLIB(QS36F)
OBJTYPE(*FILE) TOLIB(QTEMP)
fehlermeldung zum sbmjob:

Nachricht . . . : -CRTDUPOBJ OBJ(ANGVERAD) FROMLIB(QS36F) OBJTYPE(*FILE)
TOLIB(QTEMP)
CPF2189 Diagnose 40 14.01.02 08:23:22 QLICRDUP QSYS 0828 QCMD QSYS
Nachricht . . . : Für Objekt ANGVERAD in QS36F Art *FILE nicht berechtigt.
Fehlerbeseitigung : Um die Berechtigung beim Sicherheitsbeauftragten oder
Objekteigner nachsuchen. Anschließend die Anforderung wiederholen.

pgm ist mit *owner erstellt.owner hat *allobj-berechtigung.

gruss

horst

Heinz Bretthauer
14-01-02, 13:38
Hallo Horst,

so funktioniert es nicht. Wenn Du aus dem Programm den SBMJOB startest, wird ja ein neuer Job generiert. In diesem Fall müsstest Du USER(programmeigner) angeben.

Der Befehl CRTDUPOBJ in die Qtemp macht aber als eigener Job keinen Sinn. Auf diese Datei kann dann ja keiner mehr zugreifen.

Heinz

horst
14-01-02, 14:38
Hallo Heinz,

das würde ja bedeuten, daß ich jeden sbmjob
explizit mit user(programmeigner) aufrufen
müsste, wenn an dieser bibliothek keine *public-rechte bestehen.
zu macht keinen sinn : war nur als test gedacht.

gruss horst

Heinz Bretthauer
14-01-02, 16:03
Hallo Horst,

entweder das oder ein zweites Programm. Programm 1 braucht dann nicht mit *OWNER erstellt zu werden, Programm 2 schon.

Programm 1:

PGM
..
SBMJOB CMD(CALL PGM2)

ENDPGM

Programm 2:

PGM

CRTDUPOBJ ...

ENDPGM


Heinz

horst
15-01-02, 06:55
Hallo Heinz,
Hallo Frank,
vielen Dank für die Antwort.

Gruss Horst