Cómo Ocultar Esquemas a los Usuarios en Redshift
Hoy en día, la actividad de cualquier organización está asociada con el manejo de una gran cantidad de información, cuyo acceso tiene un amplio rango de personas. Consecuentemente, la complejidad de asegurar la confidencialidad de datos sensibles aumenta, junto con el crecimiento del volumen de datos procesados en las empresas. Por lo tanto, la protección de datos contra el acceso no autorizado, modificaciones no autorizadas o simplemente su destrucción es una de las prioridades. El enmascaramiento de datos es uno de los métodos efectivos para proteger información importante contra el acceso no autorizado.
La opción Ocultar Filas de Data Sunrise Dynamic Masking te permite crear ciertas reglas para ocultar parte de los datos a un grupo determinado de usuarios, preservando la estructura general de la información y dejando disponible la parte de los datos que sea necesaria para el trabajo. Como ejemplo, considera cómo las reglas de Dynamic Masking con la opción Ocultar Filas pueden ser utilizadas para ocultar esquemas específicos en la base de datos de Redshift para un grupo de usuarios.
La información sobre los esquemas en la base de datos (DB) está contenida en la tabla del sistema <your_database>.pg_catalog.pg_namespace. Así, aplicando condiciones apropiadas a las columnas de esta tabla, puedes ocultar algunos de los esquemas a usuarios específicos.

Imagina que tienes los esquemas “test1” y “test2” y quieres que solo estos 2 esquemas sean visibles para “user1”, “user2” y “user3”. A continuación, se muestra una guía paso a paso sobre cómo implementar este escenario:
- Navega a Enmascaramiento –> Reglas de Enmascaramiento Dinámico y luego haz clic en Agregar Regla.
- En la página de Detalles de la Regla, llena los campos requeridos como el Nombre, Tipo de Base de Datos y la Instancia. Habilita la casilla de verificación Registrar Evento en el Almacenamiento para ver eventos en la sección de Eventos de Enmascaramiento Dinámico. Otros campos son opcionales y puedes completarlos según sea necesario o requerido.
- En el Filtro de Sesiones, agrega una condición para la cual debería aplicarse la regla, por ejemplo Usuario de DB si la regla es aplicable para usuarios específicos o Grupo de Usuarios de DB para un conjunto de usuarios dentro del grupo.
- En la sección de Configuraciones de Enmascaramiento, haz clic en Seleccionar en las Tablas para Ocultar filas en, aparecerá la ventana modal de Chequear Columnas.
- En la sección izquierda de la ventana modal de Chequear Columnas, (a) ingresa el nombre de la base de datos para la cual debería aplicarse la regla, (b) ingresa “pg_catalog” en el campo Buscar Esquemas, (c) ingresa “pg_namespace” en el campo Buscar Tablas y luego haz clic en el botón Filtrar. El filtro será aplicado al menú de Explorador de Objetos, marca la casilla al lado de la tabla “pg_namespace” y luego haz clic en Listo.
- En el campo de condición de la columna, ingresa nspname LIKE ‘%test%’ y luego guarda la regla.
- Conéctate a la base de datos de Redshift a través del proxy en nombre de “user1” especificado en la regla de Enmascaramiento Dinámico.
- Al conectarse a la base de datos, este “user1” solo verá los esquemas “test1” y “test2”.
- Para ocultar todos los esquemas excepto el público de “user3”, especifica la siguiente condición nspowner = 1 y nspname = ‘public’.
- Solo el esquema “public” será visible para user3 en tal caso.
- Para ocultar todos los esquemas usa la condición nspowner is NULL, lo cual es falso por defecto
En este caso, los usuarios incluidos en el Grupo de Usuarios de DB no verán ningún esquema al conectarse a la base de datos a través del proxy.