Posts Tagged ‘TABLAS’

Auditoría de Tablas en SAP

Friday, July 3rd, 2009

A la hora de auditar un sistema, una pregunta frecuente es “Cómo monitoreo las modificaciones a los datos”. Con este fin, puede resultar interesante monitorear las modificaciones que determinadas tablas puedan tener en sus datos. SAP nos brinda la posibilidad de registrar las modificaciones de una o varias tablas de manera nativa.

Cabe destacar que este registro es distinto de los “documentos de modificación” que en su mayoría registran las modificaciones a datos maestros y otras informaciones críticas del sistema. El registro de documentos de modificación se encuentra activado por defecto en el sistema y no necesita de una configuración específica para que comience a registrar las modificaciones.

¿Cómo activar la auditoría de tablas?

Para activar la auditoría de modificación de tablas se necesita configurar en un parámetro del sistema rec/client. Mediante el mismo se puede especificar que la grabación se va a realizar para un mandante específico (separados por coma) o para todos (ALL en lugar de *).

Una vez que este parámetro tiene un valor asignado y SAP fue inciado con el parámetro ya definido, los datos de modificación de tablas se comienzan a registrar.

Ahora falta definir (en realidad hay que hacerlo antes de activar la auditoría), que tablas queremos que sean monitoreadas. Esto se hace a través del flag “Log data changes” de la vista técnica de la transacción SE13. Cabe destacar que muchas tablas vienen activadas por defecto y el hecho de actibar el rec/client sin verificar previamente las tablas que graban información puede tener un impacto importante en la performance.

Igualmente también es importante destacar que muchas de las tablas que vienen marcadas por defecto son de customizing y no debieran tener un mayor impacto en cuestiones de performance.

En algunas implementaciones se opta por desactivar masivamente todas las tablas y solo marcar unas pocas para registrar. Si este es su caso, deberán modificar el flag de “Log” (PROTOKOLL) en la tabla DD09L. Para conocer todas las tablas con el flag activo se puede utilizar el reporte RSTBHIST.

La tabla en donde son guardados los registros de modificación es la DBTABLOG (antes DBTABPRT y objeto de archiving BC_DBLOGS), donde por cada modificación a una tabla con el flag seteado se guarda un registro. La consulta a la misma puede hacerse desde la transacción SCU3 o desde el reporte RSTBHIST (SA38).

Una salvedad a tener en cuenta, es que a pesar de su nombre “Log de modificación de tablas”, lo que se registra son las modificaciones realizadas en SAP, no así las modificaciones a las tablas realizadas directamente sobre la base de datos y fuera del sistema. Las mismas en todo caso debieran ser logueadas desde la misma base de datos.

Como comentario final, cabe destacar que una de las excusas para no implementar este tipo de auditoría es la baja en la performance, la cual puede ser muchas veces válida, pero no siempre. La auditoría de tablas se puede activar, pero con la precaución de utilizarla para tablas que no requieran constantes modificaciones, y haciéndolo de manera progresiva, comenzando por unas pocas e ir ampliando lentamente las tablas a monitorear para poder evaluar el impacto en la performance global del sistema.


VN:F [1.9.10_1130]
Rating: 4.7/5 (3 votes cast)
VN:F [1.9.10_1130]
Rating: +2 (from 2 votes)

Acceso a Tablas (S_TABU_DIS y otros)

Monday, March 2nd, 2009

Uno de los temas más conflictivos que podemos encontrarnos al tratar de implementar, ajustar, o auditar la seguridad de un sistema SAP es precisamente el acceso a las tablas de datos.

Cómo ya bien contamos en algún artículo previo, SAP a diferencia de otros sistemas, posee a través de su misma interfaz la posibilidad de interactuar con el sistema operativo, las bases de datos, e incluso el acceso directo a los datos en ella almacenada. Por este motivo es que se habla de acceso a tablas en SAP, la información allí almacenada puede ser visualizada y editada dependiendo de algunas condiciones.

Desde determinadas transacciones puede accederse a la visualización y manutención de los datos. Especificamente, en principio hablamos de las transacciones SE16, SE16N, SM16* (todas las variantes), SE17, SM30, SM30* (todas las variantes), SM31, SM31_OLD.

A través de las mismas es posible la modificación o visualización (depende del código de la transacción y los permisos que tengamos) de las tablas, sin pasar por validaciones de integridad referencial o de otro tipo.

Justamente este es el principal problema. Las organizaciones entre muchas de las cualidades que ven en un ERP como SAP es el trabajar con datos con múltiples validaciones, un fuerte control interno, y númerosas verificaciones de integridad intrínsecas del aplicativo. Modificando los datos directamente se pierde la confianza en todas estas características porque los controles no aplican en las mismas.

Este concepto, es el mismo criterio que tiene una auditoría sobre los Controles Generales y los Controles de Aplicación. Primero se debe confiar en los controles generales (evitar fallas en el acceso físico a equipos, al sistema operativo, al servidor de bases de datos, y un largo etc, y luego si se puede empezar a descansar sobre los controles de aplicación, que son los de más alto nivel dentro de las aplicaciones (lógica de negocio o control interno). Si el control interno de la aplicación es una maravilla, pero el acceso a modificar la base de datos es libre la aplicación pierde el sentido para el que fue creada.

Volviendo a temas más técnicos de SAP, estas transacciones además del control por el objeto de autorización S_TCODE correspondiente (a esta altura ya debiéramos saber que todas lo tienen), poseen básicamente 3 objetos de autorización que controlan su comportamiento.

Estos son:

S_TABU_CLI: A través de este objeto se permite la modificación de las tablas independientes de mandante (Ver este link si se desconoce este concepto). Posee un solo campo pudiendo tomar el valor vacio o “X”, siendo este último el que permite la modificación de este tipo especial de tablas. Es requerido para determinadas tareas de customizing y para permitir las modificaciones o nuevos programas en un ambiente de desarrollo.

S_TABU_DIS: Es el objeto que determina si se posee permiso para modificar una tabla determinada. Tiene dos campos uno es el ya conocido Actividad (ACTVT) con las posibilidades 02 (modificar), 03 (visualizar datos) y BD (distribución de customizing), y el otro es DICBERCLS o Grupo de Autorización. Este último campo permite determinar un grupo para ser asignado a tablas (1 o más) el cual puede crearse editando las tablas TBRG y la tabla TDDAT o mediante la transacción SE54 (preferentemente). Las tablas que no poseen un grupo asignado automáticamente adoptan el grupo &NC&, a su vez otro grupo predefinido por ejemplo son las tablas de sistema SS.

S_TABU_LIN: Es propio de las últimas versiones de SAP, su utilización se activa en el customizing (SPRO – SAP NetWeaver – Servidor de Aplicación – Gestión del Sistemas – Usuarios y Autorizaciones – Autorizaciones Referentes a Línea) y permite que los datos sean filtrados por campos determinados. Permitiendo, por ejemplo, que solo pueda visualizarse la información perteneciente al país Argentina (un campos definido en la tbla) cuando se consulta una tabla específica. El bojeto tiene 10 campos (8 criterios posibles), otro de actividad (02 modificar y 03 visualizar) y otro que define el criterio organizacional. Es importante detallar que la definición de númerosas autorizaciones por línea tienen un impacto para nada despreciable en la performance general de las consultas. Un documento detallando la configuración puede verse aquí en idioma inglés.

Resumiendo, resulta de suma importancia restringir el acceso a tablas, en principio la modificación de las mismas directamente solo debiera permitirse como una excepción y como tal no debería ser un permiso estándar incluido en un rol.

En el caso de ser necesario para modificar tablas Z o algunas muy específicas necesidades funcionales siempre debiera otorgarse la modificación de grupos de autorización lo suficientemente acotados para que sepamos cuales son todas las tablas incluidas en los mismos.

A su vez hay que tener sumo cuidado en otorgar el permiso amplio de visualización de tablas (S_TABU_DIS, Actividad 03, Grupo *) ya que se estaría poniendo a disposición del usuario toda la información transaccional de la empresa, la cual muchas veces estaríamos cuidando con restricciones físicas en “el mundo real” pero dejando a libre disposición en los sistemas.

En algún próximo post estaremos tratando la creación de variantes de transacción para la SM30 y SM16, con le fin de restringir la visualización o modificación a una sola tabla.

VN:F [1.9.10_1130]
Rating: 5.0/5 (5 votes cast)
VN:F [1.9.10_1130]
Rating: +3 (from 3 votes)