none
Problema com Trigger de Logon RRS feed

  • Pergunta

  • Boa noite Pessoal,

     Estou com um problema em meu ambiente de testes, onde eu criei uma Trigger de LOGON para validar os LOGINs que podem fazer LOGON em um determinado horario.

    O problema que tenho é que eu inseri apenas um LOGIN que pode acessar em um determinado horario, mas este LOGIN não tem acesso a quase nada, inclusive não tem acesso as tabelas que definem qual LOGIN pode acessar em um determinado horario.

    Sendo assim não consigo fazer LOGON com meu LOGIN Administrativo ( nenhum deles ).

    Também não consigo acessar via DAC, dá um erro falando que DAC não é suportado.

    Não sei se tem como, mas alguém tem alguma dica de como eu consigo apagar esta Trigger de LOGON sem o Acesso DAC e sem um LOGIN com acessos a esta Trigger ?

    Desde já obrigado.

     

     

    sexta-feira, 26 de agosto de 2011 21:31

Respostas

  • Boa Noite,

    A criação de triggers de logon deve ter sempre uma backdoor para acessos administrativos e evitar justamente situações como essa, mas vamos lá. Uma forma simples de apagar a trigger de logon é restaurando o master antes da trigger de logon, mas acredito que um backup do master não esteja disponível. Você informou que a DAC não é suportada. Estamos falando do SQL Server Express ? Você tentou usar a DAC diretamente no servidor ?

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 29 de agosto de 2011 23:13
  • Adriano,

    Olha restaurar backups de bancos de sistemas em instâncias diferentes pode funcionar, mas com certeza poderá ocorrer alguns impactos.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quinta-feira, 1 de setembro de 2011 18:54
    Moderador

Todas as Respostas

  • Adriano,

    Vamos por partes, você ativou o DAC?

    Faça o seguinte, conecte-se como administrador ou sa em sua instância, e execute os seguintes passos:

     

    SP_CONFIGURE 'REMOTE ACCESS',1

    RECONFIGURE WITH OVERRIDE

    GO

     

    SP_CONFIGURE 'REMOTE ADMIN CONNECTIONS',1

    RECONFIGURE WITH OVERRIDE

    GO

     

    Após executar estes procedimentos, vá para o Menu File, New, Database Engine Query, informe ADMIN:NOMEDASUAINSTANCIA e faça o logon de conexão, pronto já estará conectado ao seu SQL Server através de uma conexão DAC.

    **Antes do nome da instância é necessário especificar a palavra ADMIN:


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 27 de agosto de 2011 19:59
    Moderador
  • Boa Noite,

    A criação de triggers de logon deve ter sempre uma backdoor para acessos administrativos e evitar justamente situações como essa, mas vamos lá. Uma forma simples de apagar a trigger de logon é restaurando o master antes da trigger de logon, mas acredito que um backup do master não esteja disponível. Você informou que a DAC não é suportada. Estamos falando do SQL Server Express ? Você tentou usar a DAC diretamente no servidor ?

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 29 de agosto de 2011 23:13
  • Bom Dia Junior, Gustavo,

    Então, eu não habilitei o DAC antes de fazer a trigger de Logon e o usuário que consigo acessar a base agora não tem permissão para configurar DAC.

    Eu fiz a trigger apenas para testes em uma base de treinamento minha.

    O problema que ocorreu foi que eu fiz a logica da trigger errada, pois eu criei um usuário sem permissão nenhuma( apenas permissão para conecatr em uma base qualquer), ai eu inserir este usuário em uma tabela, e depois eu criei a trigger de Logon para não deixar os usuários que estivessem na tabela logar na base.

    O problema foi que eu fiz ao contrario, deixanbdo só o usuário que esta na tabela logar na base... rsrsrs ( foi um erro de logica meu )..

    A minha instancia é uma versão Trial ( apenas para estudo mesmo ).

    Tentei utilizar DAC direto na minha maquina mesmo, mas como eu não havia habilitado DAC antes, creio que é por isto que da a mensagem de que não é suportada.

    Eu só não queria perder esta base pois tenho muita coisa que eu uso para estidar nela.

    Só uma pergunta, eu não tenho um backup do Banco Master desta instancia mais se eu criar o Backup de uma outra instancia ou mesmo de uma instanci a nova e restaurar nesta dara certo?

    Sei que perderei alguns dados mais o que importa é as outras bases mesmo.

    Desde já obrigado pela ajuda.


    Adriano Nascimento

    terça-feira, 30 de agosto de 2011 14:27
  • Adriano,

    Olha restaurar backups de bancos de sistemas em instâncias diferentes pode funcionar, mas com certeza poderá ocorrer alguns impactos.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quinta-feira, 1 de setembro de 2011 18:54
    Moderador