locked
Identificar qual aplicativo está conectado no banco RRS feed

  • Pergunta

  • Turma, 

    Tenho uma versão de um aplicativo que utilizávamos no passado que foi descontinuado. 

    Fiz um rotina para pesquisar na máquina do cliente o determinado arquivo xxxx.exe e ele era apagado. 

    Porém, alguns clientes insistem em utilizá-lo através de pendrive ou hd externo. 

    Gostaria de saber se tem como identificar qual aplicativo está conectado no banco de dados (applicationname) e de forma automática matar a conexão que ele está utilizando. 

    Valeu !!!


    Pablicio
    • Movido Gustavo Maia Aguiar sexta-feira, 21 de maio de 2010 14:15 (De:SQL Server - Desenvolvimento Geral)
    sexta-feira, 21 de maio de 2010 13:25

Respostas

  • Pablicio,

    Este é um script muito básico de ddl trigger mas servirá como inicial para seus testes

    CREATE TRIGGER [TR_AuditLogin] ON ALL SERVER
    WITH EXECUTE AS SELF
    FOR LOGON
    AS
    IF (SELECT s.program_name 
      FROM sys.dm_exec_sessions s INNER JOIN sys.dm_exec_connections c
    	  ON s.session_id = c.session_id
    	WHERE s.session_id = @@spid     
    	)='Nome do seu programa'
    begin
      -- nao permite conexao
      rollback
    end

    Event notifications é mais complicado criar um script simples como o ddl trigger, egue um link que me ajudou bastante quando precisei implementar.

    http://www.simple-talk.com/sql/sql-server-2005/logon-triggers/

    http://www.sqlservercentral.com/articles/SQLServerCentral/sqlserver2005logontriggers/2366/

     

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 21 de maio de 2010 16:04
    Moderador

Todas as Respostas

  • Pablicio

    Existe um forma sim

    usando event notification (se for sql 2005 ou 2008) e matar a conexao por application name (mas o aplication name o programador pode colocar o que quiser, isto pode ser um problema)

    uma outroa solucao é com DDL trigger

    att,
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 21 de maio de 2010 13:33
    Moderador
  • Marcelo, 

    Obrigado pela resposta. 

    Você tem algum exemplo que possa me enviar das duas opções?

    Valeu !!!


    Pablicio
    sexta-feira, 21 de maio de 2010 14:11
  • Pablicio,

    Este é um script muito básico de ddl trigger mas servirá como inicial para seus testes

    CREATE TRIGGER [TR_AuditLogin] ON ALL SERVER
    WITH EXECUTE AS SELF
    FOR LOGON
    AS
    IF (SELECT s.program_name 
      FROM sys.dm_exec_sessions s INNER JOIN sys.dm_exec_connections c
    	  ON s.session_id = c.session_id
    	WHERE s.session_id = @@spid     
    	)='Nome do seu programa'
    begin
      -- nao permite conexao
      rollback
    end

    Event notifications é mais complicado criar um script simples como o ddl trigger, egue um link que me ajudou bastante quando precisei implementar.

    http://www.simple-talk.com/sql/sql-server-2005/logon-triggers/

    http://www.sqlservercentral.com/articles/SQLServerCentral/sqlserver2005logontriggers/2366/

     

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 21 de maio de 2010 16:04
    Moderador