
No puedo recordar la cantidad de veces que me han llamado mis clientes intentando explicarse por qué sus autorizaciones no son coherentes entre los dos sistemas. Restaurar objetos de un sistema al otro e intentar mantener intactos todos los atributos y autorizaciones relacionados con la seguridad puede ser todo un reto. Hay numerosas reglas que intervienen, dependiendo de cómo se salvan los objetos y de cómo se restauran.
IBM hizo una mejora a los mandatos Salvar (SAVxxx) y Restaurar (RSTxxx) en el release
5.4 release 6.1 que facilita el intento de obtener las autorizaciones correctas en
los objetos restaurados. Sigue siendo necesario conocer las reglas y las
restricciones de las operaciones de salvar y restaurar objetos, pero
esta mejora será la respuesta a muchas de las dificultades que aparecen
durante la restauración.
Antes de profundizar en la mejora introducida en el release 5.4,
6.1, vamos a ver un ejemplo de cómo funcionan las operaciones de salvar y
restaurar en relación con las autorizaciones privadas de los objetos.
Las únicas autorizaciones de los objetos que se salvan y se restauran con un objeto son la autorización del propietario del objeto, la autorización *PUBLIC y el grupo primario del objeto. Estas autorizaciones se guardan dentro del objeto por lo que se salvan con éste; sin embargo, no todas las autorizaciones privadas de un objeto se almacenan en el objeto. También se guardan en los perfiles del usuario que tiene autorización privada sobre el objeto.
Antes de la mejora del release 5.4, 6.1, estas
autorizaciones privadas de objetos sólo se salvaban si los perfiles de
usuario se salvaban utilizando los mandatos Salvar datos de seguridad
(SAVSECDTA) o Salvar sistema (SAVSYS).
Figura 1 - Autorizaciones de objeto para PAYFILE
Display Object Authority Object . . . . . : PAYFILE Owner . . . . . . . : PAYOWNER Library . . . . . : PAYLIB Primary group . . . : *NONE Object type . . . : *FILE ASP device . . . . : *SYSBAS Object secured by authorization list . . . . . . : *NONE Object User Group Authority *PUBLIC *EXCLUDE PAYOWNER *ALL GROUP_PAY *CHANGE GROUP_ACT *USE
La Figura 1 pretende mostrar una pantalla de las autorizaciones de un objeto denominado PAYFILE. El archivo es propiedad de PAYOWNER, que tiene autorización *ALL sobre el archivo. La autorización *PUBLIC del archivo es *EXCLUDE. El archivo no tiene un grupo primario asignado. Las tres autorizaciones se almacenan dentro del objeto y se salvan con el objeto en una operación de salvar. Pero las autorizaciones privadas de GROUP_PAY y GROUP_ACT no se guardan con el objeto y, por lo tanto, no se salvan cuando se salva el objeto de archivo. La autorización *CHANGE de GROUP_PAY se almacena en el perfil de usuario GROUP_PAY; igualmente, la autorización *USE de GROUP_ACT se guarda en el perfil de usuario GROUP_ACT.
Las autorizaciones privadas como éstas sólo se salvan si se ejecuta un mandato SAVSECDTA o SAVSYS. SAVSECDTA y SAVSYS salvan, entre otras cosas, los perfiles de usuario, incluyendo las autorizaciones privadas que se almacenan dentro de los perfiles.
Restaurar las autorizaciones privadas del objeto en otro sistema requiere un proceso de dos pasos. En primer lugar, deben restaurarse los perfiles de usuario. El mandato Restaurar perfil de usuario (RSTUSRPRF) está diseñado con ese fin. Una vez seleccionados los perfiles de usuario que se han restaurado, se puede utilizar el mandato Restaurar autorización (RSTAUT) para restaurar en los objetos las autorizaciones privadas de los perfiles de usuario seleccionados.
En este ejemplo, si sólo queremos restaurar las autorizaciones privadas que contienen GROUP_PAY y GROUP_ACT, ejecutaremos los mandatos siguientes:
RSTUSRPRF … USRPRF(GROUP_PAY GROUP_ACT)
SECDTA(*PVTAUT)
RSTAUT USRPRF(GROUP_PAY GROUP_ACT)
En el release 5.4,
6.1, IBM añadió el parámetro Autorización privada (PVTAUT) a los mandatos de
salvar y restaurar. El valor del parámetro PVTAUT determina si las
autorizaciones privadas se salvan y/o se restauran con los objetos.
La nueva función puede ahorrarle bastante tiempo, esfuerzos y molestias moviendo objetos de un sistema a otro, al mismo tiempo que mantiene intactas las autorizaciones privadas. Obviamente, seguimos estando sujetos a las reglas y las restricciones de las operaciones de salvar y restaurar, pero usando el parámetro PVTAUT ya no hace falta restaurar perfiles de usuario y ya no es necesario ejecutar la operación RSTAUT para poder mantener la sincronía de las autorizaciones privadas de los objetos seleccionados.
Así que, cuando salvamos y restauramos el objeto PAYFILE del ejemplo, las autorizaciones privadas pueden salvarse y restaurarse con el objeto PAYFILE.
SAVOBJ OBJ(PAYFILE) LIB(PAYLIB) . . . PVTAUT(*YES)
RSTOBJ OBJ(PAYFILE) SAVLIB(PAYLIB) . . . PVTAUT(*YES)
El valor predeterminado de PVTAUT en todos los mandatos de salvar y restaurar es *NO, de modo que si desea que las autorizaciones privadas se salven y restauren con los objetos, tendrá que especificar PVTAUT(*YES).
Para poder restaurar las autorizaciones privadas mediante un mandato RSTxxx con PVTAUT(*YES), primero tendrá que disponer de medios de salvar creados mediante un mandato SAVxxx ... PVTAUT(*YES).
El parámetro PVTAUT es ideal cuando se mueven bibliotecas y objetos seleccionados de un sistema a otro, pero no es recomendable usarlo cuando se realizan operaciones masivas de salvar como SAVLIB *NONSYS o SAVLIB *ALLUSR.
En el caso de las operaciones de recuperación, si se necesita recuperar todo un sistema o instalar una copia de un sistema existente para pruebas o con el objeto de disponer de una copia de seguridad, le interesará restaurar los perfiles de usuario, restaurar las biblioteca especificando PVTAUT(*NO) y, finalmente, restaurar las autorizaciones privadas usando el mandato RSTAUT.