Criei uma sessão EE para auditar logins, mas há muitos logins que preciso filtrar.
Gostaria de saber se existe uma opção melhor (como criar tabela conf. com logins indesejados e filtrar sqlserver.username
usando esses valores) do que apenas adicioná-los um por um via gui\script.
relate perguntas
-
Colocando um ASSERT em uma consulta do SQL Server
-
Como "hackear" um instantâneo do banco de dados depois que a atualização do SQL Server o estragou
-
Instrução ALTER DATABASE não permitida na transação de várias instruções
-
Quais informações de evento posso obter por padrão do SQL Server?
-
Consultando eventos estendidos no SQL Server 2008
Eu diria que é melhor coletar as informações e filtrá-las na hora do relatório, porque pelo menos você as terá. A atualização constante da sessão parece complicada e outra pessoa pode usá-la: "Ouvi dizer que você está rastreando logins ao longo do tempo, você rastreia o login X?"
Além disso, você já pensou em usar o alvo do histograma? Este pode ser um bom caso de uso para isso. Haveria uma única entrada por login com uma
count
propriedade indicando quantas vezes esse login se conectou durante aquela sessão de evento estendida. Você teria que registrar o horário de início e término da sessão de Eventos Estendidos (XE) para que ela fosse significativa, mas aqui está um exemplo simples:O padrão do histograma é 256 depósitos ou nomes de login distintos neste exemplo.
Filtros na linha de
sqlserver.username IN (SELECT name FROM sometable)
não são permitidos.Você pode usar o SQL dinâmico para criar a cadeia de caracteres do filtro e concatená-la à sua
CREATE SESSION
instrução. Leve em consideração que há um limite para o comprimento da lista de valores. Lembro-me disso porque tentei a mesma coisa há algum tempo, mas não me lembro qual é o limite.