presentación - 1er plática de tips

54
Tips y Técnicas 2009 Grupo ASSSI System i

Upload: edgarrayaramirez9603

Post on 10-Jun-2015

778 views

Category:

Documents


8 download

DESCRIPTION

Tips AS400

TRANSCRIPT

Page 1: Presentación - 1er Plática de Tips

Tips y Técnicas

2009 Grupo ASSSI

System i

Page 2: Presentación - 1er Plática de Tips

Temario

Unidades.

1. Operación y Administración.2. Programación y Desarrollo de Aplicaciones.3. Base de Datos.4. Comunicaciones.5. Seguridad.6. Trivia.

Page 3: Presentación - 1er Plática de Tips

1. Operación y Administración

Page 4: Presentación - 1er Plática de Tips

Respaldar Archivos de Spool en V5R4

1. Operación y Administración

Page 5: Presentación - 1er Plática de Tips

1. Operación y Administración

Ahora que ya están en V5R4, o que pronto lo van a estar, no hay que olvidar algo de lo bueno.

¡ Ahora no se pierde ningún atributo al restaurarlos !

Nuevo parámetro adicionado a los comandos: SAVLIB, SAVOBJ, RSTLIB, RSTOBJ

SAVLIB LIB(PRUEBASLIB) DEV(TAP01) SPLFDTA(*ALL)

Este comando salva todos los archivos de spool de las output queues en la librería.

RSTLIB SAVLIB(PRUEBASLIB) DEV(TAP01) SPLFDTA(*NEW)

Este comando restaura todos los archivos de spool que no existan en las output queues.

Page 6: Presentación - 1er Plática de Tips

1. Operación y Administración

SAVOBJ OBJ(MIOUTQ) LIB(PRUEBSALIB) DEV(TAP01) OBJTYPE(*OUTQ) SPLFDTA(*ALL)

Este comando salva la output queue MIOUTQ en la librería PRUEBALIB con todos los archivos de spool que contenga.

RSTOBJ OBJ(MIOUTQ) SAVLIB(PRUEBASLIB) DEV(TAP01) OBJTYPE(*OUTQ) SPLFDTA(*NEW)

Este comando restaura los archivos de spool de la output queue MIOUTQ en la librería PRUEBALIB, que no existan en el sistema.

Page 7: Presentación - 1er Plática de Tips

Como Monitorear Problemas de i5/OS

1. Operación y Administración

Page 8: Presentación - 1er Plática de Tips

1. Operación y Administración

Mejores lugares para encontrar problemas:

• Cola de mensajes QSYSMSGQ.

• Cola de mensajes del Operador del Sistema QSYSOPR.

• Estadísticas de las Unidades de Disco.

• Entradas de los Trabajaos Activos.

• Colas de Trabajo y Colas de Salida.

Considerar alguna herramienta de monitoreo automático.

Page 9: Presentación - 1er Plática de Tips

1. Operación y Administración

Cola de Mensajes QSYSMSGQ

• Se debe crear en la librería QSYS.

CRTMSGQ MSGQ(QSYS/QSYSMSG) TEXT(‘Cola de mensajes opcional para recibir mensajes del sistema’)

• El sistema operativo envía de manera automática los problemas críticos del sistema.

Existen diferentes formas de trabajar con esta cola de mensajes:

1. Utilizar una herramienta de monitoreo.2. Crear un programa que lea los mensajes en QSYSMSGQ y realice cierta

acción cada vez que se reciba un mensaje.3. Monitorear QSYSMSGQ en modo ‘break’

CHGMSGQ MSGQ(QSYSMSGQ) DLVRY(*BREAK)

Page 10: Presentación - 1er Plática de Tips

1. Operación y Administración

Cola de Mensajes QSYSOPR

• Más compleja de monitorear ya que incluye tanto mensajes de rutina como mensajes críticos.

• Utilizar una herramienta de monitoreo o escribir un programa.

Recomendaciones para monitorear de manera automática:

1. Mensajes que requieren una respuesta tal como C, D, I o R.

Cuando un trabajo requiere de una contestación, no informa de esto para continuar.

2. Filtrar mensajes de consulta asociados con el usuario QSPLJOB.

Mensajes para tareas como cargar diferentes tipos en la impresora o alinear formatos.

Page 11: Presentación - 1er Plática de Tips

1. Operación y Administración

Cola de Mensajes QSYSOPR

3. Monitorear mensajes con un código de severidad de 80 o mayor.

Exceptuando los del usuario QSPLJOB.

Normalmente son mensajes que deben ser atendidos de inmediato.

4. Monitorear trabajos que no se completaron normalmente.

CPF1240 - Job &3/&2/&1 ended abnormallyCPC1234 - Job &3/&2/&1 ended from job queue by user &4CPC1125 - Job &3/&2/&1 was ended by user &4CPC1126 - Job &3/&2/&1 was ended by user &4

Page 12: Presentación - 1er Plática de Tips

1. Operación y Administración

Cola de Mensajes QSYSOPR

5. Monitorear condiciones serias de almacenamiento.

CPF0907 - Serious storage condition may exist. Press HELP.

• Cubrimos la mayoría de los problemas típicos.

• Iniciarse en el monitoreo automático.

• En la 2ª parte revisaremos otros mensajes a monitorear.

Page 13: Presentación - 1er Plática de Tips

1. Operación y Administración

Para la 2ª Parte

Analizaremos otras áreas críticas a monitorear, incluyendo:

• Cambios súbitos en la capacidad de disco utilizada.

• Objetos dañados.

• Problemas con trabajos activos en ejecución.

• Problemas con trabajos batch, incluyendo los de ejecución prolongada.

• Asegurarse que los subsistemas críticos están en ejecución.

• Asegurarse que los trabajos críticos de servidores están en ejecución.

• Problemas con impresiones de archivos de spool.

Page 14: Presentación - 1er Plática de Tips

2. Programación y Desarrollo de Aplicaciones

Page 15: Presentación - 1er Plática de Tips

Eludir Registros Bloqueados

2. Programación y Desarrollo de Aplicaciones

Page 16: Presentación - 1er Plática de Tips

2. Programación y Desarrollo de Aplicaciones

Poner especial atención en la operación READ en el segundo cálculo:

FSomeFile UF E K Disk Prefix(SR_)

D Forever S N inz(*On) D Open C Const(' ') D Closed C Const('Z')

/Free DoW Forever;

Read(E) SomeRec; If %Eof(SomeFile);

Leave; EndIf; If %Error();

Read(N) SomeRec; Iter;

EndIf; If SR_Status = Open and SR_Balance = *Zero;

Eval SR_Status = Closed; Update SomeRec %Fields(SR_Status);

EndIf; EndDo; Eval *InLR = *On; Return;

/End-Free

Page 17: Presentación - 1er Plática de Tips

• La operación READ incluye en extender E, indicándole al compilador RPG no detenerse si la operación termina en error.

• Después del READ y el chequeo usual por fin de archivo, utilizar la función %ERROR para atrapar los registros bloqueados.

• Si falla el READ, volver a leer, esta vez sin el lock.

• Esta segunda lectura permite mover el apuntador del archivo al siguiente registro.

• En este ejemplo no se revisó si el error se debió a un ‘lock’.

• Si se requiere, utilizar la función %STATUS, valor 1218.

2. Programación y Desarrollo de Aplicaciones

Page 18: Presentación - 1er Plática de Tips

La Eficiencia de Variables de Longitud Variable

2. Programación y Desarrollo de Aplicaciones

Page 19: Presentación - 1er Plática de Tips

• ¿Recuerdan los viejos tiempos en que los dinosaurios rondaban la tierra y la única forma de construir strings de datos en RPG involucraba jugar juegos ridículos con arreglos?

• O peor aún, utilizar combinaciones obscuras con operaciones MOVE.

• RPG IV introdujo funciones poderosas para manejar strings como %TRIM.

• Sin embargo, existen capacidades del lenguaje que pocos programadores utilizan.

• Una de las mejores es la de variables de caracter, de longitud variable.

• Existen varias ventajas de su utilización, pero en este ejemplo, únicamente nos enfocaremos a la de rendimiento.

2. Programación y Desarrollo de Aplicaciones

Page 20: Presentación - 1er Plática de Tips

D Spec – Mostrar como se definen y mostrar cada parte

D varStruct DS (A) D Campovar 256a Varying Inz

// Los siguiente campos se definen solamente para mostrar el layout de un campo variable

(B) D long 5i 0 Overlay(CampoVar)(C) D datos 256a Overlay(CampoVar: *Next)

• Tienen 2 componentes: La longitud actual representada por un entero de 2-bytes en las primeras 2 posiciones, seguido de los datos.

• Se diferencian por la Palabra Clave Varying (A).

• Codificar siempre la Palabra Clave Inz para asegurar que la longitud se asigne correctamente. Esto es crítico cuando se incorporan campos de longitud variable en estructuras de datos.

• ¿Por que?

2. Programación y Desarrollo de Aplicaciones

Page 21: Presentación - 1er Plática de Tips

D Spec – Mostrar como se definen y mostrar cada parte

D varStruct DS (A) D Campovar 256a Varying Inz

// Los siguiente campos se definen solamente para mostrar el layout de un campo variable

(B) D long 5i 0 Overlay(CampoVar)(C) D datos 256a Overlay(CampoVar: *Next)

• Porque por omisión, las estructuras de datos se inicializan con espacios (hex40), creando confusión al interpretarlo como la longitud del campo.

• En el ejemplo, (B) y (C), se definieron los 2 componentes como campos separados para mostrar el layout.

2. Programación y Desarrollo de Aplicaciones

Page 22: Presentación - 1er Plática de Tips

• Siempre que el contenido de un campo de longitud variable cambie, el compilador ajusta la longitud para reflejar el nuevo contenido.

• Siempre se debe utilizar %TRIMX cuando se carguen datos desde un campo de longitud fija.

• De lo contrario, los blancos restantes se contarán en la longitud del campo.

• Para saber la longitud del campo, utilizar la función %LEN() y obtener el valor actual.

2. Programación y Desarrollo de Aplicaciones

Page 23: Presentación - 1er Plática de Tips

• Vamos a ver como pueden mejorar notablemente el rendimiento.

• Observar los 2 siguientes códigos.

• Ambos construyen un string de 100 valores separados por comas.

• A primera vista, existe muy poca diferencia en la lógica, pero…

For i = 1 to 10;For j = 1 to 10;

fixedField = %Subst(baseString: i: j ); longFixed = %TrimR(longFixed) + ',' + fixedField;

EndFor;EndFor;

For i = 1 to 10;For j = 1 to 10;fixedField = %Subst(baseString: i: j ); longVarying += ',' + %TrimR(fixedField);

EndFor;EndFor;

2. Programación y Desarrollo de Aplicaciones

¿Creerían que el segundo puede ejecutar cientos, sino es que miles de veces más rápido?

Page 24: Presentación - 1er Plática de Tips

For i = 1 to 10;For j = 1 to 10;

fixedField = %Subst(baseString: i: j ); longFixed = %TrimR(longFixed) + ',' + fixedField;

EndFor;EndFor;

Pasos que se llevan a cabo:

• Descubrir donde se encuentra el último caracter sin espacio.

• Adicionar la coma en la siguiente posición.

• Adicionar el contenido de fixedField en la siguiente y subsecuentes posiciones.

• Si no se ha llenado longFixed, adicionar blancos hasta llenarlo.

Este proceso se repite para cada valor adicionado al string.

2. Programación y Desarrollo de Aplicaciones

Page 25: Presentación - 1er Plática de Tips

For i = 1 to 10;For j = 1 to 10;fixedField = %Subst(baseString: i: j ); longVarying += ',' + %TrimR(fixedField);

EndFor;EndFor;

Pasos que se llevan a cabo:

• Incrementar la longitud del campo en 1, y posicionar la coma en esa posición.

• Determinar la longitud del campo a adicionar (ej. Ignorar blancos).

• Copiar los datos al inicio de la longitud del campo, incrementando la longitud del campo + 1 posición.

¡ Mucho más sencillo ! Y la diferencia en velocidad puede ser impresionante.

2. Programación y Desarrollo de Aplicaciones

Page 26: Presentación - 1er Plática de Tips

For i = 1 to 10;For j = 1 to 10;

fixedField = %Subst(baseString: i: j ); longFixed = %TrimR(longFixed) + ',' + fixedField;

EndFor;EndFor;

2. Programación y Desarrollo de Aplicaciones

Otro punto a considerar es que este código (Primer ejemplo), es más eficiente que el utilizado normalmente:

longFixed = %TrimR(longFixed) + ',' + %TrimR(fixedField);

Al campo que se va a adicionar se le quitan los blancos, los cuales se adicionan nuevamente si el campo destino no se llena completamente.

longFixed = %TrimR(longFixed) + ','; longFixed = %TrimR(longFixed) + fixedField;

La separación de las 2 funciones, significa que los cálculos para la longitud efectiva del campo destino y el llenado subsecuente de blancos ocurre 2 veces por cada ‘loop’.

Page 27: Presentación - 1er Plática de Tips

For i = 1 to 10;For j = 1 to 10;

fixedField = %Subst(baseString: i: j );longFixed = %TrimR(longFixed) + ',' + fixedField;

EndFor;EndFor;

2. Programación y Desarrollo de Aplicaciones

Se utiliza simplemente para generar campos de diferentes longitudes (1 a 10 caracteres) para actuar como datos de prueba a ser adicionados al string destino.

Page 28: Presentación - 1er Plática de Tips

Enviar un Mensaje a Un Usuario Desde Un Programa.

2. Programación y Desarrollo de Aplicaciones

Page 29: Presentación - 1er Plática de Tips

2. Programación y Desarrollo de Aplicaciones

Utilizar: Call QEZSNDMSG

Especificar toda la información vía parámetros, para enviar un mensaje de interrupción desde un programa BATCH.

PGM PARM(&MSG &USERID)

DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10)DCL VAR(&DELIVERY) TYPE(*CHAR) LEN(10)DCL VAR(&MSG) TYPE(*CHAR) LEN(32)DCL VAR(&MSGLEN) TYPE(*CHAR) LEN(4)DCL VAR(&USERID) TYPE(*CHAR) LEN(10)DCL VAR(&NUMUSERS) TYPE(*CHAR) LEN(4)DCL VAR(&MSGSNT) TYPE(*CHAR) LEN(4)DCL VAR(&FUNCREQ) TYPE(*CHAR) LEN(4)DCL VAR(&ERRORCODE) TYPE(*CHAR) LEN(8)DCL VAR(&DISPLAY) TYPE(*CHAR) LEN(1)DCL VAR(&MSGQ) TYPE(*CHAR) LEN(20)DCL VAR(&DSTTYPE) TYPE(*CHAR) LEN(4)DCL VAR(&CCSID) TYPE(*CHAR) LEN(4)

CHGVAR VAR(&MSGTYPE) VALUE('*INFO')CHGVAR VAR(&DELIVERY) VALUE('*BREAK')CHGVAR VAR(&DISPLAY) VALUE('N')CHGVAR VAR(&DSTTYPE) VALUE('*USR')

CHGVAR VAR(%BIN(&MSGLEN)) VALUE(32)CHGVAR VAR(%BIN(&NUMUSERS)) VALUE(1)CHGVAR VAR(%BIN(&MSGSNT)) VALUE(0)CHGVAR VAR(%BIN(&FUNCREQ)) VALUE(0)CHGVAR VAR(%BIN(&ERRORCODE 1 4)) VALUE(0)CHGVAR VAR(%BIN(&CCSID)) VALUE(0)

CALL PGM(QEZSNDMG) PARM(&MSGTYPE +&DELIVERY +&MSG +&MSGLEN +&USERID +&NUMUSERS +&MSGSNT +&FUNCREQ +&ERRORCODE +&DISPLAY +&MSGQ +&DSTTYPE +&CCSID )

ENDPGM

Page 30: Presentación - 1er Plática de Tips

3. Base de Datos

Page 31: Presentación - 1er Plática de Tips

Utilizar DRDA para ejecutar SQL en otro System i

3. Base de Datos

Page 32: Presentación - 1er Plática de Tips

• DRDA – Distribuited Relational Database Architecture.

• Para utilizar SQL en múltiples equipos o particiones.

• Puede ayudar en tareas administrativas.

• Muy útil para consultar datos en los tablas/archivos.

• Permite a un System i local, ejecutar sentencias SQL en un servidor remoto(incluye otras plataformas).

3. Base de Datos

Page 33: Presentación - 1er Plática de Tips

Configuración del Servidor Remoto

• DRDA utiliza el Servidor DDM (Distribuited Data Management) para recibir y procesar SQL.

1. Revisar si está en ejecución el Trabajo QRWTSRVR en el subsistema QSYSWRK.

2. Arrancar el Servidor;

STRTCPSVR SERVER(*DDM)

3. Base de Datos

Page 34: Presentación - 1er Plática de Tips

Configuración del Servidor Local

• Adicionar una entrada del Servidor Remoto en el directorio de bases de datos relacionales.

1. Utilizar el comando WRKRDBDIRE, y la opción 1 para adicionar una entrada al directorio.

Base de datos relacional = Nombre que hace referencia al System i Remoto.Localidad remota = Nombre de Host o Dirección IP.Tipo de conexión = *IP

2. Utilizar el comando ADDRDBDIRE:

ADDRDBDIRE RDB(Remoto) RMTLOCNAME(xx.xx.xx.xx *IP)

3. Base de Datos

Page 35: Presentación - 1er Plática de Tips

Utilizando DRDA

1. Arrancar SQL – STRSQL

2. Utilizar la sentencia CONNECT – Requiere el nombre especificado en el parámetro RDB, nombre de usuario y contraseña:

CONNECT TO Remoto USER xxxxxx USING ‘contraseña’

3. Una vez conectado satisfactoriamente, todas las sentencias SQL se ejecutarán con la base de datos remota, hasta finalizar la conexión.

4. Para conectarse entre servidores utilizar SET CONNECTION:

SET CONNECTION RemotoSET CONNECTION Local

5. Para saber a cual están conectados, utilizar la sentencia CONNECT.

6. Para desconectar, utilizar el comando DISCONNECT Remoto.

3. Base de Datos

Page 36: Presentación - 1er Plática de Tips

4. Comunicaciones

Page 37: Presentación - 1er Plática de Tips

NetServer

4. Comunicaciones

Page 38: Presentación - 1er Plática de Tips

• ¿ Qué es NetServer ?

4. Comunicaciones

• Servidor para compartir directorios e impresoras con clientes Windows.

• Permite el acceso remoto a los recursos de System i.

• System i Access no es necesario.

• Se recomienda utilizar el Navegador para configurar NetServer.

Page 39: Presentación - 1er Plática de Tips

Configuración de NetServer

1. Verificar que TCP/IP está activo y funcional.

2. Verificar el nombre correcto del Servidor NetServer.

Buscar en los mensajes del operador el mensaje CPIB680, el cual contiene el nombre.

3. Si no es el nombre correcto, cambiar de la siguiente manera:

CALL QZLSCHSN PARM (nombre-servidor nombre-dominio ‘texto’

X’00000000’)

4. Finalizar y arrancar el Servidor NetServer:

ENDTCPSVR *NETSERVER

STRTCPSVR *NETSERVER

4. Comunicaciones

Page 40: Presentación - 1er Plática de Tips

Configuración de NetServer

5. Revisar que se esté ejecutando el Trabajo QZLSSERVER en el subsistema QSERVER.

6. Utilizar el comando NETSTAT *CNN para verificar que existen las siguientes entradas:

** netbios>001:27:44 Listen

** netbios>000:00:01 *UDP

** netbios>000:00:00 *UDP

** netbios>000:30:57 Listen

** cifs>427:49:42 Listen

7. Revisar que se está ejecutando el trabajo QNPSERVD en el subsistema QSYSWRK:

STRHOSTSVR *NETPRT

4. Comunicaciones

Page 41: Presentación - 1er Plática de Tips

Compartir Archivos

Abrir el Navegador:

1. Seleccionar Red – Servidores.

2. Clic en TCP/IP para ver todos los servidores.

3. Clic derecho en NetServer y seleccionar Abrir.

4. Clic derecho en Objetos Compartidos y seleccionar Nuevo – Archivo.

5. Utilizar Propiedades Generales para configurar el nombre, descripción, accesos, número máximo de usuarios, etc.

4. Comunicaciones

Page 42: Presentación - 1er Plática de Tips

Configuración de la PC - Archivos

1. Verificar que se tiene conexión con el System i – Ping.

2. Seleccionar Inicio – Buscar – Equipos o Personas – Un equipo en la red –nombre del servidor netserver (\\as400\)

3. Doble clic para seleccionar los recursos compartidos.

4. Clic derecho en el directorio a compartir y seleccionar compartir y seguridad.

5. Seleccionar la letra del drive.

6. Seleccionar si se desea conectar al arrancar el equipo.

7. Especificar usuario y contraseña.

4. Comunicaciones

Page 43: Presentación - 1er Plática de Tips

Compartir Impresoras

Abrir el Navegador:

1. Seleccionar Red – Servidores.

2. Clic en TCP/IP para ver todos los servidores.

3. Clic derecho en NetServer y seleccionar Abrir.

4. Clic derecho en Objetos Compartidos y seleccionar Nuevo – Impresora.

5. Utilizar Propiedades Generales para configurar el nombre, descripción, cola de salida, driver de la impresora, etc.

4. Comunicaciones

Page 44: Presentación - 1er Plática de Tips

Configuración de la PC - Impresoras

1. Verificar que se tiene conexión con el System i – Ping.

2. Seleccionar Inicio – Buscar – Equipos o Personas – Un equipo en la red –nombre del servidor netserver.

3. Doble click para seleccionar los recursos compartidos.

4. Click derecho en la impresora a compartir.

5. Instalar el driver de la impresora – AFP y SCS.

www.printers.ibm.com

Qca400\Win32\Install\Printer

4. Comunicaciones

Page 45: Presentación - 1er Plática de Tips

5. Seguridad

Page 46: Presentación - 1er Plática de Tips

Dando a Los Auditores Lo Que Solicitan

5. Seguridad

Page 47: Presentación - 1er Plática de Tips

Mostrar información que comúnmente solicitan los molestos auditores.

1. Contraseñas por Omisión.

• Lista de todos los usuarios que utilizan la contraseña por omisión.• Ocurren cuando son iguales al ID de Usuario.• Son muy comunes ya que el sistema operativo la asigna al crear el ID de

Usuario.

Ejecutar el comando:

ANZDFTPWD ACTION(*NONE)

Crea un archivo de spool QPSECPWD con la lista de todos los usuarios con la contraseña por omisión.

Puede deshabilitar los usuarios.

Lo mejor es que también genera un archivo físico QASECPWD en QUSRSYS.

5. Seguridad

Page 48: Presentación - 1er Plática de Tips

2. Parámetros de Configuración de las Contraseñas.

Se puede obtener fácilmente con el Navegador, y crear un documento de Word:

a) Abrir un documento de Word.

b) Abrir el navegador y seguir la ruta Seguridad – Políticas – Contraseñas. Esta ventana contiene 3 pestaña: General, Validación y Políticas de Expiración.

c) Clic en General. Se muestra el nivel de seguridad de contraseñas utilizado en el sistema.

d) Presionar Alt-PrtSc para copiar la ventana completa al Clipboard de Windows.

e) En el documento de Word, seleccionar Paste.

f) Repetir los pasos d y e para las pestañas Validación y Políticas de Expiración.

5. Seguridad

Page 49: Presentación - 1er Plática de Tips

3. Información de los Perfiles de Usuario.

Información referente a autorizaciones especiales asignadas a los usuarios.

a) Crear un archivo de información de perfiles de usuario (AIPU)

b) Fácil de crear:

DSPUSRPRF USRPRF(*ALL) TYPE(*BASIC) OUTPUT(*OUTFILE) OUTFILE(lib/nombre_archivo)

c) En mi experiencia lo que más les interesa son los perfiles de usuario con alguna de las siguientes clases o autorizaciones especiales:

• Clases de usuario *SECOFR (Oficial de Seguridad) o *PGMR (Programador).• Autorizaciones especiales *ALLOBJ (All Objects) o *SECADM (Administrador

deSeguridad).

• Usuarios con acceso a línea de comandos.

5. Seguridad

Page 50: Presentación - 1er Plática de Tips

d) Para utilizar esta información se puede desarrollar un programa, ligar el archivo a una base de datos de Access, o utilizar una de las 3 siguientes sentencias SQL:

• Usuarios con Clases *SECOFR o *PGMR:

SELECT * FROM lib/nombre_archivo WHERE UPUSCL = '*SECOFR' OR UPUSCL = '*PGMR‘

• Usuarios con autorizaciones especiales *ALLOBJ y/o *SECADM:

SELECT * FROM lib/nombre_archivo WHERE UPSPAU LIKE '%ALLOBJ%' OR UPSPAU LIKE '%SECADM%‘

• Usuarios con autorización a línea de comandos:

SELECT * FROM LIB/FILENAME WHERE UPLTCP = '*NO‘

e) La parte más difícil es identificar cuales campos del archivo representan la parte del perfil de usuario. Utilizar:

DSPFFD FILE(lib/nombre_archivo) OUTPUT(*PRINT)

5. Seguridad

Page 51: Presentación - 1er Plática de Tips

4. Autorización para ciertos comandos.

• SBMJOB – Submitir trabajos.

• RLSJOB – Liberar trabajos.

• CHGJOB – Cambiar trabajos.

• ADDJOBSCDE – Adicionar trabajos al Scheduler.

5. Seguridad

Usuarios con acceso a comandos críticos del sistema, para trabajar con ‘jobs’, o el scheduler, incluyendo:

Estos comandos indican quien puede ejecutar o manipular trabajos en el sistema.Se puede imprimir la lista de usuarios autorizados y su autorización específica:

DSPOBJAUT OBJ(nombre_comando) OBJTYPE(*CMD) OUTPUT(*PRINT)

Page 52: Presentación - 1er Plática de Tips

5. Seguridad

Los auditores quieren todo… y más.

Una cosa es segura con los auditores, no importa lo que les entreguen, siempre quieren más. Pero si saben donde buscar la información, será sencillo actualizarla

cuando los auditores la requieran.

Page 53: Presentación - 1er Plática de Tips

6. Trivia

Page 54: Presentación - 1er Plática de Tips

Base de Datos – Cierto o Falso

1. Join dinámico significa que el criterio no se aplica hasta que la consulta es ejecutada.

2. Los triggers de SQL requieren que el journaling esté activo.

3. Existe una diferencia significativa entre DB2/400 y DB2 UDB para System i.

4. Es posible cambiar la longitud de un campo de un archivo físico sin recompilarlo.

5. Las vistas de SQL no pueden ser indexadas.

6. Múltiples archivos planos pueden ser copiados en un archivo de DB2utilizando el ‘Wildcard’ (*) en el comando CPYFRMSTMF.

7. El número de renglón no es soportado en DB2, y no existe forma de darle vuelta.

8. “Índice Interno” significa que si DB2 genera un índice para forzar una restricción referencial, el índice se oculta al usuario/administrador.

6. Trivia