SQL 2016 SESSION_CONTEXT


Muchas de nuestras aplicaciones se conectan con un solo login hacia el motor de base de datos.

El problema esta en como hacer para por ejemplo enviar información del usuario real de la aplicación y poderla usar con SQL Server.

Antes de SQL 2016 teníamos la opción de configurar CONTEXT_INFO el cual nos permita asignar variables a la conexión y luego poderla usar en nuestros procesos como por ejemplo Triggers de auditoria.

En SQL 2016 se introduce un cambio llamado SESSION_CONTEXT el cual tiene muchas mejoras con respecto a su antecesor las cuales son:

  • Se pueden asignar claves y valores
  • Se puede preguntar luego por esas claves de forma simple.
  • Soporta hasta 256kb por conexión.

Imaginemos que esta funcionalidad con RLS (Row Level Security) podrían dar un poder interesante a la seguridad de nuestras aplicaciones (sobre todo Web).

Veamos unos ejemplos:

 

image

RLS y SESSION_CONTEXT()