Privilegios analíticos en SAP HANA: ¿Cómo crear?

⚡ Resumen inteligente

Privilegios analíticos en SAP HANA agrega autorización a nivel de fila sobre los privilegios de objeto, por lo que dos usuarios que consultan la misma vista de información ven solo los registros que permiten sus restricciones asignadas. SAP Estudio HANA.

  • 🔘 Propósito: Un privilegio de objeto abre una vista completa, mientras que un privilegio analítico filtra las filas que devuelve la vista.
  • ☑️ Alcance: Las vistas de atributos, las vistas analíticas y las vistas de cálculo pueden protegerse mediante un privilegio analítico.
  • Restricciones: Los valores dentro de un mismo atributo se combinan con OR, y las restricciones en diferentes atributos se combinan con AND.
  • 🧪 Ejemplo: Un privilegio en la vista de cálculo CA_FI_LEDGER limita al usuario ABHI_TEST a la empresa 1000.
  • 🛠️ Asignación: La restricción se aplica únicamente después de la validación, activación, asignación al usuario o rol y despliegue.
  • 📈 Dirección: Los privilegios basados ​​en XML están obsoletos, por lo que las nuevas restricciones se escriben como privilegios analíticos de SQL.

Privilegios analíticos que restringen el acceso a datos a nivel de fila en SAP HANA

¿Qué son los privilegios analíticos en SAP ¿HANA?

Los privilegios analíticos restringen a un usuario a los datos que está autorizado a ver, por lo que son una parte fundamental de SAP Seguridad HANA.

Los privilegios SQL otorgan autorización a nivel de objeto, no a nivel de registro. Un usuario con permisos SELECT sobre una vista puede leer todas sus filas. Cuando se requiere una restricción a nivel de fila, se utiliza un privilegio analítico.

Los privilegios analíticos proporcionan esa autorización sobre las siguientes vistas de información.

A continuación, se crea un privilegio analítico y se asigna al usuario “ABHI_TEST”, de modo que este pueda ver únicamente los datos de la empresa con valor 1000. Ambos privilegios son necesarios conjuntamente: el privilegio de objeto abre la vista y el privilegio analítico decide qué filas se muestran.

Cómo crear un privilegio analítico en SAP HANA

Los seis pasos siguientes se ejecutan SAP Estudio Hana, desde la creación del privilegio hasta su prueba con un segundo usuario.

Paso 1) Vaya a Privilegios analíticos. Haga clic con el botón derecho en el paquete Modelado y, a continuación, seleccione Nuevo -> Privilegios analíticos, como se muestra a continuación.

Nueva opción de privilegios analíticos en el menú contextual del paquete de modelado.

Paso 2) Aparece la nueva ventana emergente. Introduzca los detalles del privilegio analítico que se muestran a continuación.

  1. Introduzca el nombre y la etiqueta del privilegio analítico.
  2. El nombre del paquete se selecciona automáticamente.
  3. La opción de selección crea un nuevo privilegio.

Nuevo diálogo de privilegios analíticos con los campos de nombre, etiqueta y paquete.

En el siguiente paso, se muestra el editor de privilegios analíticos para agregar y editar privilegios.

Paso 3) Haga clic en el botón "Aceptar". Se abrirá el editor de privilegios analíticos y se seleccionará primero el modelo de referencia.

  1. La sección General muestra el nombre y la etiqueta.
  2. Haga clic en el botón “Agregar” en la sección Modelos de referencia, como se muestra a continuación.
  3. Seleccione la vista de cálculo (CA_FI_LEDGER) creada anteriormente.

Botón Agregar en la sección Modelos de referencia del editor de privilegios analíticos

La validez y la restricción de atributos se definen en el mismo editor.

  1. Haz clic en el botón Agregar para establecer la validez del privilegio.
  2. Asignar la validez del privilegio.
  3. Haz clic en el botón Agregar para seleccionar el atributo que conlleva la restricción.
  4. Seleccione el atributo Empresa.
  5. Haz clic en el botón "Agregar" para asignar un valor a ese atributo.
  6. Asigne el valor seleccionando el tipo u operador y el valor. En este caso, el usuario está restringido a los datos de la vista de cálculo solo para la empresa 1000, como se muestra a continuación.

Editor de privilegios analíticos con modelo de referencia, validez y restricciones de la empresa.

Valide y active el privilegio analítico. Este se creará en la carpeta Privilegios analíticos, dentro del paquete Modelado, como se muestra a continuación.

Privilegio analítico activado que figura en la carpeta Privilegios analíticos.

Paso 4) Asigne el privilegio analítico al usuario “ABHI_TEST”, que ya posee privilegios en el paquete de modelado. Double-Haz clic en el usuario “ABHI_TEST” en Seguridad -> Usuarios.

  1. Seleccione la pestaña Privilegios analíticos.
  2. Haz clic en el botón “+”.
  3. Aparecerá una ventana emergente para seleccionar privilegios analíticos. Introduzca el nombre del privilegio analítico creado anteriormente.
  4. Seleccione el privilegio analítico.
  5. Haz clic en el botón Aceptar, como se muestra a continuación.

Seleccione la ventana emergente Privilegios analíticos en la pantalla de mantenimiento de usuarios.

El privilegio analítico se agrega al usuario, como se muestra a continuación.

Pestaña Privilegios analíticos del usuario ABHI_TEST después de que se haya agregado el privilegio.

Paso 5) Implementa el cambio para el usuario haciendo clic en el botón de implementación. Se mostrará un mensaje indicando que el usuario 'ABHI_TEST' ha sido modificado, como se muestra a continuación.

Despliegue un mensaje de confirmación que indique que el usuario ABHI_TEST fue modificado.

Paso 6) Verifique el privilegio analítico. Inicie sesión como “ABHI_TEST” desde el sistema HANAUSER para confirmar que la asignación funciona.

  1. Seleccione el sistema actual HDB (HANAUSER) y haga clic con el botón derecho sobre él.
  2. Seleccione “Agregar sistema con usuario diferente” y luego ingrese el nombre de usuario y la contraseña para “ABHI_TEST”, como se muestra a continuación.
  3. Se agrega un sistema HDB (ABHI_TEST) a la lista de sistemas.

Agregar sistema con opción de usuario diferente para iniciar sesión como ABHI_TEST

El usuario ABHI_TEST no tiene acceso completo a los datos de la vista de cálculo creada por HANAUSER, porque HANAUSER creó un privilegio analítico que restringe esa vista a la empresa 1000 y se lo asignó a ABHI_TEST.

Vaya a la carpeta Contenido -> seleccione el paquete -> vista de cálculo (CA_FI_LEDGER) -> haga clic con el botón derecho -> Vista previa de datos. La pantalla de vista previa de datos se muestra como se indica a continuación.

Vista previa de datos de la vista de cálculo restringida a la empresa 1000.

Los datos en la vista de cálculo están restringidos al código de empresa 1000, lo que confirma que el privilegio analítico está activo para ese usuario.

Comparación de los privilegios analíticos de XML clásico y SQL

Existen dos tipos de privilegios analíticos, y la elección es importante para cualquier nuevo desarrollo. El editor que se muestra arriba crea el privilegio clásico, basado en XML. Los privilegios analíticos SQL se introdujeron en SAP HANA 1.0 SPS 10 y expresa la misma restricción como una condición de filtro SQL.

Aspecto Clásico (basado en XML) privilegio analítico SQL
Definición Se mantiene gráficamente en el modelador y se almacena como un objeto XML en tiempo de diseño. Definido mediante una condición de filtro SQL, de modo que la lógica compleja se mantiene legible.
Condiciones Restricciones de atributos con operadores simples. Expresiones SQL completas, incluyendo condiciones anidadas y combinadas.
Estado Obsoleto desde SAP HANA 2.0 SPS 02. Recomendado para cada nuevo privilegio.
Disponibilidad no disponible en SAP Nube HANA. Apoyado en SAP HANA 2.0 y SAP Nube HANA.

El SAP HANA Modeler incluye una actividad de migración que convierte los privilegios clásicos basados ​​en XML en privilegios basados ​​en SQL, por lo que las restricciones existentes no tienen que reescribirse manualmente. SAP En HANA Cloud, el privilegio se convierte en un artefacto de tiempo de diseño dentro de un contenedor HDI y llega al usuario a través de un rol en lugar de a través del editor de usuario.

Cómo se evalúan las restricciones de privilegios analíticos

Saber cómo se combinan las condiciones evita restricciones que produzcan resultados excesivos o nulos.

  • Varios valores enumerados para un atributo se combinan con una lógica OR, por lo que un usuario puede ver la empresa 1000 o la empresa 2000.
  • Las restricciones en diferentes atributos se combinan con una lógica YPor lo tanto, tanto la empresa como el país deben coincidir.
  • Cuando un usuario posee varios privilegios analíticos sobre la misma vista, los resultados se suman, lo que amplía el acceso en lugar de restringirlo.
  • Una restricción estática almacena valores fijos, mientras que una restricción dinámica lee los valores permitidos en tiempo de ejecución desde un procedimiento, de modo que un mismo privilegio puede servir a muchos usuarios.

Una vista solo se comprueba cuando su propiedad Apply Privileges especifica el tipo de privilegio, y la comprobación se ejecuta además del privilegio de objeto SELECT. Las vistas de columna generadas por la activación residen en el esquema _SYS_BIC, y las restricciones efectivas de un usuario se pueden consultar en la vista del sistema EFFECTIVE_STRUCTURED_PRIVILEGES.

Errores comunes en los privilegios analíticos y sus soluciones

La mayoría de los problemas de autorización en una vista de información provienen de alguna de las siguientes situaciones.

  • Error de autorización en una vista. El usuario posee el privilegio analítico, pero no el de SELECT sobre la vista de columna generada ni sobre el esquema subyacente. Otorgar ambos.
  • La vista previa no devuelve ninguna fila. El atributo restringido no tiene ningún valor coincidente, o bien el período de validez del privilegio ya ha finalizado.
  • La restricción se ignora. El privilegio se creó pero nunca se activó, o la vista no tiene configurada su propiedad Aplicar privilegios.
  • El cambio no tiene ningún efecto. La tarea no se implementó o la sesión del usuario se inició antes de la implementación y debe volver a conectarse.
  • De todos modos, todo es visible. El usuario posee el permiso _SYS_BI_CP_ALL, que otorga acceso sin restricciones a todas las vistas de información y debe mantenerse fuera de los roles de producción.

Conceda privilegios analíticos a través de roles en lugar de directamente a los usuarios, de modo que la misma restricción pueda revisarse, transportarse y revocarse en un solo lugar. El contexto de modelado para las vistas protegidas se trata en el SAP Modelado HANA y SAP HANA guías.

Preguntas Frecuentes

SAP HANA utiliza privilegios de sistema para tareas de administración, privilegios de objeto para tablas y vistas, privilegios de paquete para el contenido del repositorio, privilegios de aplicación para aplicaciones XS y privilegios analíticos para el acceso a nivel de fila dentro de las vistas de información.

Sí. La sección Modelos de referencia acepta varias vistas de información, y la misma restricción de atributos se aplica a cada una de ellas, siempre que el atributo restringido exista en todas las vistas listadas.

_SYS_BI_CP_ALL es un privilegio analítico generado que otorga acceso sin restricciones a todas las vistas de información. Resulta útil para un modelador en un entorno de pruebas, pero compromete la seguridad a nivel de fila y no es apropiado para roles de producción.

El aprendizaje automático aplicado a los registros de acceso analiza el comportamiento normal de las consultas e identifica las cuentas que de repente acceden a empresas o regiones inusuales. Estas herramientas clasifican los permisos de acceso riesgosos para su revisión, pero el administrador de seguridad sigue decidiendo qué privilegios modificar.

GitHub Copilot genera las condiciones de filtro y el código SQL correspondiente a partir de un breve comentario, lo que simplifica el trabajo con restricciones complejas. Cada condición generada debe probarse con datos reales, ya que un operador incorrecto puede ampliar el acceso sin previo aviso.

SAP HANA Cloud solo admite privilegios analíticos SQL. El privilegio es un artefacto de tiempo de diseño dentro de un contenedor HDI, se otorga a través de un rol y el editor XML clásico de SAP HANA Studio ya no está disponible.

No. La restricción se evalúa para las vistas de información cuya propiedad Apply Privileges esté activada. Una consulta a la tabla base se controla únicamente mediante privilegios de objeto, por lo que las tablas confidenciales deben exponerse a través de vistas.

Un rol agrupa privilegios y es el contenedor recomendado para su transporte y revisión. Un privilegio analítico es uno de los objetos que contiene dicho grupo, y otorgarlo directamente a un usuario dificulta la auditoría posterior de la misma restricción.

Resumir este post con: