Comprobado en V7R2 y también son las mismas

                        Autoriz   ------------Datos-------------
Usuario     Grupo       objeto    Lect  Añadir  Actu  Supr  Ejec
*PUBLIC                 USER DEF   X
QSYS                    *ALL       X      X      X     X     X

El 26 de agosto de 2016, 11:18, XEM foro i5 <[email protected]>
escribió:

> Hola Javier,
>
> He comprobado en una V7R1 y son las mismas autorizaciones.
>
> Saludos
>
> Xavier Estrems
>
>
>
> *De:* [email protected] [mailto:
> [email protected]] *En nombre de *Javier Mora
> *Enviado el:* viernes, 26 de agosto de 2016 10:59
> *Para:* 'forum.help400' <[email protected]>
> *Asunto:* Error de ejecución en procedimiento almacenado
> GET_VIEW_DEPENDENTS
>
>
>
> Hola a tod@s:
>
>
>
> a ver si me podéis echar un cable.
>
>
>
> He encontrado en IT Jungle un procedimiento almacenado que podría ser útil
> (para todos). Es algo parecido a un DSPDBR pero es capaz de encontrar las
> vistas SQL que están en función de otras vistas y, así, recursivamente
> hasta el final.
>
>
>
> Aquí está el código:
>
>
>
> CREATE PROCEDURE
>
>   QGPL.GET_VIEW_DEPENDENTS (
>
>     IN DBNAME CHAR(10),
>
>     IN DBLIBRARY CHAR(10)
>
>   )
>
> DYNAMIC RESULT SETS 1
>
> LANGUAGE SQL
>
> SPECIFIC
>
>   GET_VIEW_DEPENDENTS
>
> NOT DETERMINISTIC
>
> READS SQL DATA
>
> CALLED ON NULL INPUT
>
> PROGRAM TYPE SUB
>
> SET OPTION  ALWBLK = *ALLREAD, ALWCPYDTA = *OPTIMIZE,
>
>     COMMIT = *NONE, CLOSQLCSR = *ENDMOD,
>
>     DECRESULT = (31, 31, 00), DFTRDBCOL = *NONE,
>
>     DYNDFTCOL = *NO, DYNUSRPRF = *USER, SRTSEQ = *HEX
>
> BEGIN
>
>   DECLARE C1 CURSOR FOR
>
>   WITH RECURSIVE
>
>     DEPENDENTS ( CALLLEVEL, DBFFIL, DBFLIB, DBFFDP, DBFLDP )
>
>   AS (
>
>     SELECT
>
>       1 AS CALLLEVEL, DBFFIL, DBFLIB, DBFFDP DBFLDP
>
>     FROM
>
>       QADBFDEP
>
>     WHERE
>
>       DBFFIL = DBNAME AND DBFLIB = DBLIBRARY
>
>     UNION ALL
>
>     SELECT
>
>       CALLLEVEL + 1 AS CALLLEVEL,
>
>       PR.DBFFIL , PR.DBFLIB , PR.DBFFDP , PR.DBFLDP
>
>     FROM
>
>       DEPENDENTS PH
>
>     INNER JOIN
>
>       QADBFDEP PR ON ( PH.DBFFDP, PH.DBFLDP ) = ( PR.DBFFIL, PR.DBFLIB )
>
>   )
>
>   SELECT DISTINCT
>
>     DBXLFI, DBXTXT, DBFFDP, DBFLDP
>
>   FROM
>
>     DEPENDENTS
>
>   INNER JOIN
>
>     QADBXREF ON ( DBFFDP, DBFLDP ) = ( DBXFIL, DBXLIB )
>
>   ORDER BY
>
>     DBFFDP, DBFLDP
>
>   FOR READ ONLY;
>
>
>
>   OPEN C1;
>
>
>
>   SET RESULT SETS CURSOR C1;
>
> END;
>
>
>
> La he compilado como QSECOFR, aunque creo que no tiene nada que ver con el
> error que encuentro, en la biblioteca QGPL. Sin errores. Cuando la ejecuto
> como QSECOFR funciona sin problemas, pero cuando lo hago con mi usuario me
> aparece el siguiente error:
>
>
>
> > CALL QGPL.GET_VIEW_DEPENDENTS ('ARTICU', 'TESTER')
>
>
>
> Estado de SQL: 42501
>
> Código de proveedor: -551
>
> Mensaje: [SQL0551] No tiene autorización para el objeto QADBXREF de
> QSYS00144 tipo *FILE. Causa . . . . . :   Se intentó una operación sobre el
> objeto QADBXREF en QSYS00144 de tipo *FILE.  Esta operación no puede
> realizarse sin la autorización necesaria. Recuperación . . . : Obtenga la
> autorización necesaria del responsable de seguridad, del propietario del
> objeto o de un usuario con autorización sobre la función QIBM_DB_SECADM. Si
> no tiene autorización sobre un archivo lógico, obtenga la autorización
> sobre los archivos de base del archivo lógico. Repita la operación.
>
>
>
> El proceso ha finalizado porque la sentencia resaltada no se ha completado
> satisfactoriamente
>
>
>
> El objeto QADBXREF de QSYS00144 tiene las siguientes autorizaciones:
>
>
>
>                         Autoriz   -----------Objeto------------
>
> Usuario     Grupo       objeto    Opr  Ges  Exist  Alterar  Ref
>
> *PUBLIC                 USER DEF
>
> QSYS                    *ALL       X    X     X       X      X
>
>
>
>                          Autoriz   ------------Datos-------------
>
> Usuario     Grupo       objeto    Lect  Adic  Actu  Supr  Ejecut
>
> *PUBLIC                 USER DEF   X
>
>  QSYS                    *ALL       X     X     X     X      X
>
>
>
> Se aprecia que tengo autorización de lectura pero no la operativa, que
> permite utilizar el objeto. He intentado cambiar la autorización de *PUBLIC
> pero no me ha dejado el sistema porque el “trabajo de sistema” QDBX144XR lo
> tiene bloqueado.
>
>
>
> Utilizo la versión 7.2 con el nievl de PTFs a junio de este año y tengo un
> entorno con *SYSBAS y una ASP independiente (la 144).
>
>
>
> Me gustaría saber si algún alma caritativa puede comprobar qué
> autorizaciones tiene el objeto QSYS/QADBXREF *FILE tanto en versión 7.2 o
> en cualquier otra.
>
>
>
> Un saludo y gracias,
>
>
>
>
>
> Javier Mora
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a