Вы находитесь на странице: 1из 9

Manual de Instalación

PK_M3_CONTROL_EJECUCION
Versión 1.0

Autor: Arnoldo Suarez Ardila

Concesión RUNT

Bogotá

2017
Manual de Instalación
PK_M3_CONTROL_EJECUCION
Alcance:
Este documento indica los pasos requeridos para realizar la compilación del package
PK_M3_CONTROL_EJECUCION el cual contiene los procedimientos que controlan la inserción de
permisos, actualizaciones y validaciones utilizadas para controlar la ejecución de los PL/SQL
solicitados por Mesa 3 que por razones de seguridad, deben ser ejecutados bajo estas condiciones.

Para el almacenamiento de esto registros, se crean (2) dos nuevas tablas:

- Una tabla paramétrica (PROC_RUNT. M3_PA_PERMISOS), donde se parametriza el control


de ejecucion de los procedimientos. Aquí se define la frecuencia y cantidad de ejecuciones
permitidas.
- Una tabla de detalle (PROC_RUNT. M3_UE_PERMISOS), donde se registran los permisos de
usuario para los procedimientos de ejecucion unica.

Contenido de la Entrega 1.0:

Esta entrega se compone de 3 elementos:

 IT F 23 Formato Usuarios Y Privilegios BD V4 20.xlsx


 1.PK_M3_CONTROL_EJECUCION.txt
 2.PK_M3_CONTROL_EJECUCION.txt

Procedimiento de Instalación:

Base de datos
Se deben realizar los siguientes pasos:

- Asignación de los permisos solicitados en el formato TEC.F.17 Formato Usuarios Y


Privilegios BD V5.xlsx
 Se debe compilar el archivo 1.PK_M3_CONTROL_EJECUCION.txt
 Se debe compilar el archivo 2. PK_M3_CONTROL_EJECUCION.txt
Detalle del proceso

Precondiciones

El uso de este package será asignado al usuario administrador de Mesa3, el cual se encargara de
definir la cantidad de ejecuciones permitidas de los procedimientos, su indicador de periodicidad
de ejecución y delegara los permisos de ejecucion a los usuarios de BD respectivos.

Procedimiento
PK_M3_CONTROL_EJECUCION.PR_M3_INSERT_PA_PERMISOS

Este procedimiento tiene el objetivo de registrar la parametrización de ejecucion de los


procedimientos en la tabla PROC_RUNT.M3_PA_PERMISOS. A continuación, un ejemplo de
ejecucion del procedimiento:

Consulta de la tabla PROC_RUNT.M3_PA_PERMISOS:

Como se puede observar, se almacena el nombre del procedimiento y la cantidad de veces


permitidas de ejecucion con respecto a su periodicidad. Para ello, el indicador
M3_PA_FRECUENCIA, el cual define si el procedimiento va a ejecutarse diariamente (indicador
‘D’), semanalmente (indicador ‘S’) o mensualmente (indicador ‘M’). Para el ejemplo, el
procedimiento PR_M3_INSERT_PA_VALORECON, va a ser ejecutado diariamente 8 veces como
máximo.
Procedimiento PK_M3_CONTROL_EJECUCION.PR_M3_INSERT_PERMISOS

Este procedimiento tiene el objetivo de registrar las autorizaciones de permisos de ejecucion de


los procedimientos en la tabla PROC_RUNT.M3_UE_PERMISOS. A continuación, un ejemplo de
ejecucion del procedimiento:

Consulta de la tabla PROC_RUNT.M3_UE_PERMISOS:

Esta tabla almacena el nombre del procedimiento, la fecha de autorización de ejecución, el estado
(UTILIZADO: el permiso de ejecucion fue ejecutado, NO_UTILIZADO: el permiso de ejecucion no se
ha ejecutado, NO_CONSUMIDO: El registro se actualiza a este estado cuando los permisos de
ejecucion sobre el procedimiento no fueron utilizados dentro de la periodicidad definida en la
tabla M3_PA_PERMISOS. Este último estado será actualizado por el Área de Seguridad), fecha de
utilización, usuario de autorizado para ejecutar el procedimiento, usuario que asigna el permiso de
ejecucion y el id del encabezado de auditoria, el cual se almacena en la tabla
PROC_RUNT.M3_AUDI_TICKETS.

El campo donde se almacena el id de la auditoria es actualizado una vez se utilice el permiso de


ejecucion sobre el procedimiento.

Nótese que cuando se crea el registro, este campo esta con valor NULL y el estado por default es
NO_UTILIZADO
Es importante aclarar que la asignacion de dichos permisos NO se cuenta por cada usuario de BD
sino de forma global. Esto significa que cada vez que se ingresa un nuevo registro en la tabla
PROC_RUNT.M3_UE_PERMISOS, internamente dentro del procedimiento
PR_M3_INSERT_PERMISOS cada vez que se ingresa un nuevo permiso, se valida cual es la cantidad
y periodicidad de ejecucion registrada en la tabla PROC_RUNT.M3_PA_PERMISOS y se compara
contra los registros que existan en la tabla PROC_RUNT.M3_UE_PERMISOS. Cuando se llegue al
tope, se impide la inserción de un nuevo permiso de ejecucion; esto garantiza que se controla la
cantidad de ejecuciones permitidas de los procedimientos registrados en la paramétrica Vs los
registros que existan en la tabla de detalle.

A continuación se muestran algunos ejemplos de lo mencionado anteriormente:

Escenario 1: Cuando el procedimiento se ejecuta diariamente (Indicador D):

Se ingresan los registros permitidos según la paramétrica (3 registros diarios)

Al ingresar un nuevo registro, el procedimiento debe restringir la inserción


Escenario 2: Cuando el procedimiento se ejecuta semanalmente (Indicador S):

Como el indicador es semanal se consulta el primer y último día de la semana. Para el ejemplo,
se captura el primer y último día de la semana comprendida entre el 13/03/2017 y 19/03/2017

Se ingresan los registros permitidos según la paramétrica (4 registros por semana)

Al ingresar un nuevo registro, el procedimiento debe restringir la inserción


Escenario 3: Cuando el procedimiento se ejecuta mensualmente (Indicador M):

Se ingresan los registros permitidos según la paramétrica (10 registros por mes)

Al ingresar un nuevo registro, el procedimiento debe restringir la inserción

Procedimiento PK_M3_CONTROL_EJECUCION.
PR_M3_ACTUALIZAR_ESTADO

Este procedimiento, es invocado dentro del PL/SQL sobre el cual es requerido el permiso de
ejecución. Tiene como objetivo actualizar el estado del procedimiento que se va a ejecutar a
'UTILIZADO' y capturar el id del encabezado de la auditoria que se almacena en
M3_AUDI_TICKETS. Internamente se valida que usuario está ejecutando el procedimiento.

Tomando como ejemplo la imagen anterior, al ejecutar nuevamente el procedimiento, se actualiza


el estado y se captura el id del encabezado de la auditoria.

Nótese que se observa el mensaje “SE ACTUALIZA EL ESTADO DEL PERMISO DE EJECUCION SOBRE
EL PROCEDIMIENTO A UTILIZADO”, lo que significa que el permiso sobre el procedimiento fue
utilizado. Volviendo a consultar nuevamente la tabla en base al ejemplo:

Detalle de la auditoria

Función PK_M3_CONTROL_EJECUCION. F_M3_VALIDAR_PERMISOS

El objetivo de esta funcion, consiste en validar si el usuario que va a ejecutar el procedimiento


tiene permisos en estado NO_UTILIZADO. En caso de que no los tenga, ya sea porque no se le han
asignado permisos de ejecucion o en su defecto ya los ha utilizado, aparece un mensaje como el
que se muestra a continuación:
Procedimiento PK_M3_CONTROL_EJECUCION.
PR_M3_ACTUALIZAR_ESTADO

Este procedimiento tiene el objetivo de actualizar la cantidad, frecuencia de ejecucion o ambos


campos si requiere, de los procedimientos en la tabla paramétrica
PROC_RUNT.M3_PA_PERMISOS. A continuación, un ejemplo de ejecucion del procedimiento:

Consulta anterrior al cambio:

Ejecucion del procedimiento:

Se valida nuevamente la tabla paramétrica: