No hay manera de encontrar esta información. Cuando crea un informe para MSCRM, utiliza un conector llamado "Conector de datos MSCRM". Esto se puede ver en la columna AdditionnalInfo de la vista ExecutionLogs3 en la instancia de SSRS. Cuando use este conector e intente mostrar un informe, se le pedirá un nombre de usuario y contraseña. Ahí es donde las cosas se ponen interesantes.
¡El informe no está esperando realmente un nombre de usuario/contraseña! De hecho, espera recibir systemuserid (guid) como nombre de usuario y organizationid (guid) como contraseña. Luego busca en la base de datos MSCRM_CONFIG la configuración de la base de datos de la organización. Luego, va a la base de datos de la organización y simplemente hace un set context_info SYSTEMUSERID
. Finalmente, las vistas de filtro están llamando a una función llamada '[dbo]. [Fn_FindUserGuid]' que recupera context_info. Así es como las vistas filtradas funcionan correctamente, mientras están conectadas como la cuenta de servicio.
Como era de esperar, no podemos conocer al usuario que ejecutó el informe porque las solicitudes de usuario y contraseña en SSRS nunca se registran en ningún lugar (por cuestiones de seguridad, tal vez).
La mejor opción que he encontrado para registrar quién ejecutó un informe es crear realmente un procedimiento almacenado que hará una declaración select en las vistas filtradas (o cualquier tabla, como está) y luego iniciar sesión en una tabla separada la instrucción, los parámetros de procedimiento y context_info(). Luego, en SSRS, llamo a esa función en lugar de ir directamente a las vistas filtradas.
La pregunta era sobre el uso de SQL Source. Como se indicó en la pregunta, sé que se registra al usar FetchXML. –
Sí, tiene la razón, he editado la respuesta para incluir la obtención del nombre de usuario si se utilizó la fuente sql. –
Su respuesta (usando User! UserID) mostrará el nombre de usuario en el informe, pero no se almacenará en los registros de ejecución. Mi pregunta originalmente me preguntó cómo recuperar esa información en el registro de ejecución. Gracias por el tiempo invertido. –