• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
SAP S/4HANA

Privilegios analíticos de HANA en SAP DWC: parte 1

By s4pcademy 


Introducción

SAP DWC viene con controles de acceso a datos (DAC) integrados. Se utilizan para hacer cumplir una seguridad de nivel de fila y están totalmente integrados en SAP DWC. Un ejemplo de integración es que una ejecución de persistencia de vista es compatible con DAC y garantiza que el filtrado funcione correctamente en el resultado persistente.

SAP HANA también admite de forma nativa la seguridad a nivel de fila al ofrecer privilegios analíticos. En comparación con SAP DWC, ofrecen un conjunto diferente de capacidades. Dependiendo de su escenario, puede tener un interés específico en usar algunas de estas capacidades o reutilizar las definiciones de privilegios analíticos que ha creado anteriormente.

Esta publicación de blog esboza una configuración que le permite usar la seguridad nativa de nivel de fila de SAP HANA en el contexto de SAP DWC. Tenga en cuenta que estas definiciones no aparecen en SAP DWC y, por lo tanto, no están integradas en el concepto de autorización estándar.

Escenario inicial

Como punto de partida, asumimos la siguiente configuración en SAP DWC: un espacio contiene los datos y los expone a través del uso compartido en un segundo espacio para consumo externo.

Con los nombres de vista que usaremos a través de la publicación del blog, se lee así:

Tenemos un espacio llamado Consumo con una vista que expone datos para informes, por ejemplo, SAP SAC y tenemos un espacio separado Entrante alojar los datos en sí. Compartir espacio cruzado permite que ver_CONSUMO el acceso a ver datos.

El enunciado del problema

Sin ninguna seguridad a nivel de fila, los filtros de la solicitud de datos se propagan directamente a través de la vista de consumo a la vista de datos. La dirección de las flechas sigue la dirección de la solicitud.

Lo que necesitamos es una forma de fusionar los filtros de la solicitud de SAC Story con los filtros, reflejando las autorizaciones del usuario actual de la aplicación. La siguiente imagen ilustra este objetivo: los filtros SAC y el filtro de autorización se fusionan en un nuevo filtro efectivo. Este filtro combinado se envía a la vista de datos. Como resultado, el usuario ve solo la parte de los datos que se ajusta a ambas definiciones de filtro.

Tenga en cuenta que la fusión con el filtro de autorización debe realizarse cerca o incluso mejor directamente en el nivel de la vista de consumo, y no muy por debajo en la capa de datos. Esto evita la acumulación de definiciones de autorización y, además, permite que todas las vistas por debajo del consumo se beneficien del conjunto completo de filtros.

Nota: Utilicé el término «Filtro de historia». Esto debería hacer referencia al conjunto efectivo de filtros que se encuentran en las solicitudes de datos a SAP DWC. A veces, los filtros definidos en la interfaz de usuario de SAP SAC no se incluyen en las solicitudes a SAP DWC.

Concepto de solución

La solución descrita en la publicación del blog utiliza los privilegios analíticos de HANA para realizar la combinación. Ampliamos nuestra configuración de muestra con una vista de HANA (incluidos los privilegios analíticos) y redirigimos las solicitudes para pasar a través de esta nueva entidad.

Cómo crear una vista de HANA con privilegios analíticos

Crear un usuario SQL abierto en el Entrante space crea un nuevo esquema en HANA con el nombre, por ejemplo, Entrante#Filtro. Dentro de este nuevo esquema, el usuario de SQL tiene permisos suficientes para crear una vista, y aquí está el truco principal, ¡con privilegios analíticos!

Puede pensar que esta vista de HANA consta de dos partes:

  • Una definición de filtro de autorización que describe el subconjunto de datos al que puede acceder el usuario de la aplicación
  • Una capacidad de fusión que combina el filtro de autorización con cualquier filtro utilizado para seleccionar datos. En nuestro escenario, esto fusionaría los filtros SAC Story con el filtro de autorización.

La imagen ilustra el nuevo flujo de solicitud: La vista de consumo solicita los datos de la vista Ver_DATA_AP (con privilegios analíticos). Después de la fusión de filtros, la solicitud se reenvía a la vista Ver datos (sin privilegios analíticos).

Solución: paso a paso

Después de entender el concepto general, podemos comenzar con la implementación real. Como es de esperar, hay varios pequeños detalles que tenemos que considerar. Si se siente perdido en los detalles, vuelva a la descripción general, vuelva al camino correcto y luego continúe con el paso a paso.

Comenzamos creando todas las entidades relevantes sin los privilegios analíticos. Después de probar el flujo de datos y la configuración, habilitamos los privilegios analíticos.

Preparar espacio Entrante y datos de prueba

La muestra utilizará los siguientes datos de la empresa que puede descargar aquí:
https://github.com/SAP-samples/data-warehouse-cloud-content/blob/main/Sample_Bikes_Sales_content/CSV/Products.csv

Configuración del espacio

  1. crea un espacio Entrante
  2. Cree un usuario de SQL abierto con el nombre «filtro» y asigne privilegios de lectura/escritura y la opción de concesión
  3. Cree un usuario de análisis. Lo necesitaremos más tarde para realizar pruebas y determinar la lista de usuarios técnicos a los que debemos conceder acceso.

Ver con datos de prueba

  1. Cargue los datos de prueba en una tabla llamada DATA
  2. Crear una vista Ver datos con un mapeo 1:1 de todas las columnas.
  3. Exponer la vista Ver datos para el consumo A través de esta opción, permite que todos los usuarios SQL abiertos del espacio Entrante para acceder a los datos.

Nota: La vista con los datos de prueba no se comparte con el espacio de consumo. No queremos exponer datos desprotegidos.

Obtener lista de usuarios técnicos

Para cada espacio, SAP DWC crea un conjunto de usuarios de HANA. Cada uno de estos usuarios se utiliza para tareas específicas. Como ejemplo, todas las solicitudes a través de la interfaz Ina/MDS (por ejemplo, SAP SAC) se ejecutan con un usuario siguiendo la convención de nomenclatura #INA_.

Como nos gusta permitir el acceso desde el Entrante espacio a nuestra nueva vista de HANA, debemos otorgar derechos a los usuarios de HANA creados por SAP DWC. Esto es similar al concepto de espacio compartido cruzado de SAP DWC. Preparemos el paso de otorgamiento identificándolos.

Otorgaremos derechos a los usuarios para la vista previa de datos en ENTRANTE y CONSUMO y para el acceso del INA en el CONSUMO espacio. Esto es suficiente para propósitos de informes.

Obtener lista de usuarios

  1. Abra el explorador de base de datos
  2. Iniciar sesión con el usuario de análisis
  3. Abra una consola SQL
    Insinuación: Como usaremos con diferentes usuarios en DB Explorer, es posible que desee cambiar el nombre de la pestaña de la ventana con algo como usuario de análisis.

Ejecute la siguiente instrucción:

select * from sys.users where 
usergroup_name="DWC_SPACE_USERS"
and user_name like 'CONSUMPTION#INA%' ;

Mantenga esta ventana abierta o anote los usuarios de la lista.

Crear vista de HANA View_DATA_AP

Esta sección trata sobre la creación de la vista de HANA y la concesión de derechos de ejecución para el ENTRANTE usuarios

Crear vista

  1. Abra el explorador de base de datos
  2. Inicie sesión con el usuario SQL abierto Entrante#Filtro
  3. Abra una consola SQL

Ejecute la siguiente instrucción

create or replace view View_DATA_AP
as select * from "INBOUND"."View_DATA";
with STRUCTURED PRIVILEGE CHECK;

Esto crea la vista con privilegios analíticos.

Nota: Si recibe un mensaje de error sobre privilegios insuficientes, se ha perdido la opción de exposición para consumo en ver datos.

Crear proveedor de condiciones

El proveedor de condiciones es un procedimiento sql que devuelve el filtro de autorización. Para nuestro ensayo inicial, devolveremos un filtro ficticio que permite todo. Para una validación de prueba del filtro y la fusión, cambie el valor devuelto de ‘1=1’ a ‘”PRODUCTID”=”BX-1011” ‘.

Más adelante, en la parte 2 de este blog, se volverá a implementar para devolver el filtro de autorización para un usuario de aplicación determinado.

CREATE or replace procedure APP_USER_DEPENDENT_FILTER_VIEW_HANA (OUT OUT_FILTER VARCHAR(5000))
LANGUAGE SQLSCRIPT SQL SECURITY DEFINER READS SQL DATA AS
BEGIN
 -- Dummy filter to return all data
    OUT_FILTER = '1=1';
 -- Static test filter for a single product 
 -- OUT_FILTER = ' "PRODUCTID"=''BX-1011'' ';
END;

Crear privilegio analítico

Cree un privilegio estructurado que vincule el proveedor de condiciones y la vista de HANA que acabamos de crear.

create structured privilege View_HANA_Analytical_Priv
for select
on View_DATA_AP
CONDITION PROVIDER APP_USER_DEPENDENT_FILTER_VIEW_HANA;

Asignar privilegio analítico al usuario

Asigne este privilegio a los usuarios de HANA relevantes. Aquí nos restringimos a los de vista previa de datos en ambos espacios e ina/MDS en el espacio de consumo.

El usuario requerido para la vista previa de datos tiene el mismo nombre que el espacio.

GRANT STRUCTURED PRIVILEGE View_HANA_Analytical_Priv TO INBOUND;
GRANT STRUCTURED PRIVILEGE View_HANA_Analytical_Priv TO CONSUMPTION;

El usuario requerido para el acceso a Ina/MDS (por ejemplo, Modelo Analítico o SAC Stories) se ha derivado en los pasos anteriores:

GRANT STRUCTURED PRIVILEGE View_HANA_Analytical_Priv TO CONSUMPTION#INA<uid>

Consumir view_DATA_AP

Ahora necesitamos importar la definición de nuestra vista HANA en el ENTRANTE espacio. como el Importar => Mesas remotas en el explorador del repositorio no expone esquemas SQL como fuente, usamos el siguiente enfoque:

Vista de importación

  1. Navegar al Generador de datos
  2. Seleccione la opción Nueva vista gráfica
  3. En el panel de selección de vistas y tabla, seleccione la pestaña Fuentes y ampliar el esquema ENTRADA#FILTRO

  4. Arrastre la tabla a la sección de creación de vistas.
  5. El sistema le preguntará si desea importar la tabla. Decir que sí.
  6. Cancelar la creación de Vista gráfica. No es necesario.

Compartir mesa

El siguiente paso es compartir la mesa (aunque en realidad es una vista) con el espacio de consumo.

  1. Navegar a la Generador de datos
  2. Mesa abierta VER_DATOS_AP
  3. Comparte la mesa con el espacio CONSUMO

Dentro del espacio de consumo

Crear una vista Ver_CONSUMO basado en la tabla compartida Ver_DATA_AP. Esta vista expone datos filtrados por los privilegios analíticos que definimos en el procedimiento del proveedor de condiciones.

Pruebas

Hagamos algunas pruebas para validar nuestra configuración. Si esto funciona como se esperaba, comience con la segunda parte de esta publicación de blog. Describe una implementación de muestra para Autorizaciones.

Acceso SQL

  1. La vista previa de datos en ver_DATOS_AP debe mostrar todos los datos de la prueba.
  2. La vista previa de datos en Ver_CONSUMO debe mostrar todos los datos de la prueba.

Acceso Ina/MDS

Hay dos formas de crear solicitudes de datos para la interfaz Ina/MDS.

  1. SAC Story basado en un conjunto de datos analíticos
  2. El nuevo modelo analítico

Elija uno de ellos y verifique si ve los mismos datos de prueba que a través del acceso SQL. Si esto falla y SQL funciona como se esperaba, es probable que la concesión de privilegios para el usuario de Ina/MDS en el consumo de espacio fuera incorrecta.

Nota: La instrucción sql CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS (‘‘, ?) proporciona detalles adicionales en caso de que vea un error de privilegio insuficiente. Ejecutar la declaración con el usuario de análisis.

Filtrar y fusionar

Ajuste la definición de filtro devuelta por la función del proveedor de condiciones. En lugar de ‘1=1’, cámbielo para que devuelva ‘”PRODUCTID”=”BX-1011” ‘. Como resultado, debería ver un conjunto de datos restringido. Esto prueba que la combinación de filtros funciona como se esperaba.

Felicitaciones, ahora tenemos la configuración completa para usar los privilegios analíticos de HANA. El siguiente paso es una implementación más sofisticada que se puede utilizar para proyectos reales. La parte 2 de este blog cubrirá esto.

Quizás se pregunte qué más se podría hacer con una vista de HANA como parte de las definiciones de vista en SAP DWC. Aquí me gustaría recomendar los siguientes blogs. Se ocupan de las características de HANA de enmascaramiento de datos y anonimización de datos.

Enmascaramiento de datos: un paseo por el parque con SAP Data Warehouse Cloud

Acceso a datos compatible: un requisito clave de autoservicio en 2020

Me encantaría escuchar sus pensamientos, ideas y comentarios en esta publicación de blog. ¡Házmelo saber en los comentarios!




Personalización de la configuración de gestión presupuestaria para el sector público en SAP S/4HANA
Previo
Espacios y páginas de la plataforma de lanzamiento de Fiori
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.