Estuve ahí leyendo documentos, y así tal cual, no se le puede otorgar permiso de 'SELECT' a un schema; éste solo aplica a las tablas. Así que consulté a la gurú de DB2 y me comentó que tenía que revisar que tablas pertenecían al schema y de ahí hacer el cambio.
Lo primero era consultar las tablas en el catálogo que pertenecían al schema:
$ db2 "select TABSCHEMA, TABNAME from SYSCAT.TABLES where TABSCHEMA = 'FOOSCHEMA' > /tmp/max.out
Dado que la cantidad de tablas por modificar eran más de 150, decidí hacer un script balín para modificar los permisos del usuario en todas esas tablas. Primero había que dejar un archivo con los puros nombres de las tablas separados de renglón en renglón; limpié el archivo de salida schema.out para dejar la pura columna que tenía el nombre de la tabla y lo envié al archivo max.out.col
$ cut -c130-180 max.out > max.out.col
Dado que el cut dejó muchos espacios en blanco sobrantes en cada renglón, los limpié desde vi:
:%s/ //g
Finalmente hice el script que otorgaría todos los permisos, después los revocaría todos y finalmente otorgaría únicamente el permiso de select:
Finalmente, en menos de 2 minutos se cambiaron esos permisos en menos de 2 minutos.
Si bien mi método no es el mas adecuado y podría mejorarse y reducirse, me resolvió el problema en ese momento y de modo sencillo. Y finalmente, leer documentación y preguntar es parte central de solución de problemas que uno no tiene idea como resolver.
No hay comentarios.:
Publicar un comentario