Como no implementamos los usuarios de nuestras aplicaciones como usuarios en el servidor SQL, cuando el servidor se conecta a una base de datos, cada aplicación siempre usa las mismas credenciales para adjuntar a cada base de datos.Servidor SQL: modificando la propiedad "Nombre de la aplicación" para propósitos de auditoría
Esto presenta un problema de auditación. Mediante el uso de desencadenantes, queremos almacenar cada actualización, insertar y eliminar, y atribuir cada una a un usuario en particular. Una posible solución es agregar una columna "actualizado por usuario" a cada tabla y actualizar esto cada vez. Esto significa una nueva columna en cada tabla y un nuevo parámetro en cada procedimiento almacenado. También significa que solo puedes hacer eliminaciones suaves.
En lugar de esto propongo usar la propiedad Nombre de la aplicación de la cadena de conexión y leer esto con la propiedad Nombre_de_aplicación() dentro del desencadenador. Probé esto con una aplicación simple y parece funcionar (el formato podría ser así: App = MyApp | User = 100).
La pregunta para ustedes es, ¿es esta una mala idea y tienen una mejor?
¿Cómo resolvió esto? ¿Pudo leer "App = MyApp | User = 100" desde el disparador usando 'CONTEXT_INFO'? Necesito modificar los desencadenantes utilizados por * ApexSQL Audit 2008 * y almacenar el "usuario" pasado a través de 'ApplicationName'. – AMissico