Preciso encontrar uma maneira de registrar todos os scripts e consultas (SELECT, INSERT, UPDATE, DELETE e EXEC) de um usuário.
Contexto: Quero verificar que tipo de consultas meu suporte está fazendo no banco de dados. Neste momento, pedi que copiassem e colassem todos os scripts que executam em um canal do Teams, mas gostaria de dar um alívio e usar um sistema de automação. Esses usuários fazem login com suas contas no banco de dados. Eu posso identificá-los.
Parece que você deseja auditar a atividade do usuário. Você deve considerar o uso do recurso de auditoria interno , que foi feito para auditar a atividade do usuário. Há um tutorial muito fácil para configurá-lo aqui . Se você não estiver usando uma edição qualificada do SQL Server, considere uma versão mais moderna (e com suporte!), pois a auditoria de banco de dados foi estendida a todas as edições a partir do SQL Server 2016 SP1.
Claro, você pode usar o Profiler (e deixar seu sistema de joelhos ) ou Extended Events (e chorar toda vez que precisar analisar os dados ). A auditoria tem um suporte de ferramentas muito melhor - e para inspeção ad hoc você pode simplesmente clicar com o botão direito do mouse,
View Audit Logs
e revisar os dados como o log de erros ou o histórico do SQL Server Agent.Você também pode consultar os dados, é claro, usando
sys.fn_get_audit_file
, e pode automatizar as coisas em torno disso, e a saída é muito mais fácil de consumir do que XML bruto. Apenas demonstrando que é muito fácil de configurar, e muito fácil de validar que está configurado corretamente.