Hola Javier, de momento solo puedo verlo en 6.1:

                        Autoriz   --------------Objeto---------------
Usuario     Grupo       Objeto    Opr  Gest  Exist  Alterar  Referen.
*PUBLIC                 USER DEF
QSYS                    *ALL       X    X      X       X        X

Un saludo.


>
> Message: 2
> Date: Fri, 26 Aug 2016 08:58:32 +0000
> From: Javier Mora <[email protected]>
> Subject: Error de ejecución en procedimiento almacenado
>         GET_VIEW_DEPENDENTS
> To: "'forum.help400'" <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> 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
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: <
> http://listas.combios.es/cgi-bin/mailman/private/forum.help400/attachments/20160826/dbaeb8e3/attachment.htm
> >
>
> ------------------------------
>
> __________________________________________________
> Forum.HELP400 es un servicio m&amp;amp;#225;s de ServerNEWS.
> &amp;amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
> http://www.help400.es
> _____________________________________________________
>
> Para darte de baja visita la siguente URL:
> http://listas.combios.es/mailman/listinfo/forum.help400
>
> Fin de Resumen de Forum.help400, Vol 118, Envío 15
> **************************************************
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a