Ir para conteúdo
  • Cadastre-se

dev botao

Firebird 2.5 - Descobrir Quantidade De Usuário Logados


Ver Solução Respondido por Régys Silveira,
  • Este tópico foi criado há 1058 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
  • Solution

Utilize a tabela de sistema MON$ATTACHMENTS, todos os usuários conectados estão nesta tabela.

 

Para retornar a quantidade de usuários conectados você poderia fazer algo do tipo

select
  count(MON$ATTACHMENTS.mon$attachment_id) as qt_usuario_conectado
from
  MON$ATTACHMENTS
  • Curtir 3

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa Tarde Régys, Régys estou tento alguns problemas com clientes acessando a minha base de dados e estou em busca de uma solução direta no ibpexert pois sei que os mesmo estão utilizando tão ferramenta para acessar a base.

Vi que o ibexpert tem uma opção de executar script antes e depois de conectar com o banco, pois não sei muito bem usar esses metadados do ibexpert como você citou acima poderia me ajudar? 

Tipo assim antes de dar acesso ao banco eu pegaria o username que o cara tá entrando caso vamos supor que seja diferente de ADM eu encerro a conexão com o banco isso é nem dou continuidade ao processo, teria como?

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

Boa tarde.

 

A tabela que o Regys te falou acima guarda cada conexão feita no banco, bem como usuário, aplicativo etc.

 

Você pode criar uma trigger de conexão (disponível a partir do Firebird 2.1) para "monitorar" quem está conectando ao banco.

 

Por exemplo, ao ocorrer  uma nova conexão ao banco, verifique o campo MON$REMOTE_ADDRESS (iP de onde veio a conexão) e liberar determinados IP's,

 

Também pode-se verificar o campo MON$REMOTE_PROCESS que é o nome do aplicativo que está sendo utilizado na conexão com o banco. Neste caso o aplicativo está com o path completo.

 

Caso a nova conexão não esteja dentro dos parâmetros especificados, efetue um delete do registro na tabela que a conexão é encerrrada.

 

Essa é uma forma de você "bloquear" acessos ao BD.

 

Lembrando, que o próprio Firebird permite desabilitar trigger na conexão, utilizando parâmetro  "isc_dpb_no_db_triggers' no próprio IBExpert que você irá conectar ao banco, sem a trigger seja executada.

 

Atenciosamente.

Editado por jeter.rabelo
  • Curtir 1

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

Obrigado pelas explicações jeter, no meu caso o que ocorre é que como é uma aplicação comercial o banco fica no servidor do cliente ou em uma maquina de frente de caixa entendeu? Vou tentar algo do tipo como você citou acima. A versão do firebird instalada nos clientes é a partir da 2.5.

Agradeço a resposta. 

Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
  • 1 mês depois ...
  • 1 ano depois...
Em 17/06/2014 at 22:48, Régys Silveira disse:

Utilize a tabela de sistema MON$ATTACHMENTS, todos os usuários conectados estão nesta tabela.

 

Para retornar a quantidade de usuários conectados você poderia fazer algo do tipo


select
  count(MON$ATTACHMENTS.mon$attachment_id) as qt_usuario_conectado
from
  MON$ATTACHMENTS

Aproveitando o gancho, onde configuro a quantidade de usuários simultâneos?

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1058 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.