Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos,
Estou precisando de uma ajuda de vocês para ter uma ideia de como resolver meu problema.
Eu tenho o seguinte cenário em um cliente:
50 bancos na nuvem (1 para cada cliente dele) - banco **SQL Server**;
Todos os clientes rodam uma mesma aplicação;
Nestes 50 bancos podem existir quantos usuários eles quiserem, portanto como exemplo, se cada banco tiver 10 usuários, teremos 500 usuários, OK!
Existe um administrador que fica monitorando estes 50 clientes;
O que estou precisando neste momento é mostrar para este administrador quem são os usuários que estão logados no sistema, ou seja, preciso criar um monitor que mostre a ele quem acessou o sistema e também quem saiu, apresentando quem esta ON e quem esta OFF.
Só para ilustrar melhor, cada um destes bancos tem seu próprio cadastro de usuários, portanto eu tenho que varrer os 50 bancos para saber quem acessou o sistema.
Os amigos poderiam me ajudar, como eu posso fazer isso de uma forma que não deixe o sistema "pesado", já que o administrador também utiliza a mesma aplicação que todo mundo.
Outra coisa, a aplicação é desktop, ou seja, roda localmente na máquina de cada usuário apenas acessando a base na nuvem.
Grande abraço!!
[arrumando post duplicado... kkkk]
Pra identificar em que tabela ele registra essas informações do usuário, incie um trace, veja nos scripts que serão executados durante o login. Duvidas pra configurar o trace ou fazer o cursor pra executar o script em todas as bases, só entrar em contato.
Abraço.
SELECT *
FROM sys.dm_exec_sessions
Boa tarde, Wellington! tranquilo?
Parece ser algo simples, porém pra isso você precisa conhecer o meio de autenticação dos usuários do sistema, pois provavelmente utiliza um método próprio de autenticação. qual é o sistema? provavelmente ele tem uma tabela que mostra os usuários logados ou algum flag na tabela de usuários. Faça o select pra uma base só, varrer todas é o menor dos problemas. Após fazer o select pra ver quem ta logado, você pode fazer um cursor pra um select name from sys.databases e executar o script pra cada base ou utilizar a procedure de sistema sp_msforeachdb que recebe um comando como parâmetro e o executa em todos os bancos na instância.
Abraço!