Digamos que encontrei um SQL Server e não tenho ideia de quais aplicativos se conectam a ele. Talvez eu encontre um aplicativo, mas não tenho certeza se é o único que o usa.
Existe uma boa maneira de encontrar todas as conexões distintas?
Digamos que encontrei um SQL Server e não tenho ideia de quais aplicativos se conectam a ele. Talvez eu encontre um aplicativo, mas não tenho certeza se é o único que o usa.
Existe uma boa maneira de encontrar todas as conexões distintas?
Você pode ver os processos atualmente em execução no SSMS no Activity Monitor.
Você também pode obtê-lo usando sys.dm_exec_sessions , bem como sys.dm_exec_connections e sys.dm_exec_requests .
Consulta:
Nome de host, nome de processo ou nomes de usuário de domínio geralmente fornecem mais informações do que apenas um endereço IP. Outras colunas podem ser adicionadas, como:
login_time
,last_successful_logon
IP e outras informações podem ser recuperadas com um JOIN para sys.dm_exec_connections em
session_id
:client_net_address
,local_net_address
,connect_time
, ports, ...sys.dm_exec_requests também pode fornecer informações úteis:
command
type,sql_handle
, ...Esta consulta é apenas uma amostra. Você deve
JOIN
essas 3 visualizações juntas e produzir/armazenar informações relevantes de qualquer uma delas.Os dados dessas exibições desaparecem quando o SQL Server é reiniciado. Portanto, se o aplicativo não estiver conectado regularmente, pode ser uma boa ideia armazená-los regularmente usando um trabalho ou um script (Powershell).
Eu também sugeriria o que Julien sugeriu, mas acho que agendar a consulta por meio do SQL Server Agent seria uma ideia melhor e, toda vez que ele for executado, você despeja as informações em uma tabela física. Dois DMVs são unidos
sys.dm_exec_connections
esys.dm_exec_sessions
Como primeiro crie uma tabela física
Em seguida, insira os registros nesta tabela:
Agende isso para ser executado via SQL Server Agent a cada 15 minutos ou mais e, no final do dia, você poderá ver tudo o que quiser na tabela
session_information
.Habilite a auditoria de login do SQL Server para logins bem-sucedidos e com falha: https://learn.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio
Alterar o escopo de auditoria exigiria uma reinicialização do serviço SQL. Depois que o serviço for reiniciado, todos os logons (usuário) bem-sucedidos e seu endereço IP começarão a ser registrados nos logs do SQL Server. Esses dados podem ser coletados por cerca de uma semana ou duas e, em seguida, o arquivo de log é analisado para listar todos os endereços IP (e usuários) que acessaram os bancos de dados do SQL Server durante o período monitorado.
Se o componente SSRS também estiver instalado na mesma caixa, a tabela ExecutionLog do banco de dados ReportServer pode ser analisada para listar todos os logons que acessam o portal SSRS.
De Obter endereço IP do cliente no SQL Server por Sarvesh Kumar Gupta :