none
Criando login-User pra acessar Base de Dados e não acessar o SSMS 2008 R2 RRS feed

  • Pergunta

  • Pessoal, seria possível criar um login e posteriormente um usuário numa base de dados e impedi que o mesmo não consiga acessar o SSMS do SQL Server.

    Agradeço desde já!


    • Editado Jerfeson S. Barbosa quarta-feira, 18 de dezembro de 2013 19:09 Complemantando título
    quarta-feira, 18 de dezembro de 2013 19:09

Respostas

  • Olá,

          É possível sim! Utilize Trigger de Logon. Veja o exemplo abaixo:

    create trigger Logontrg_Conexao
    on all server for logon
    as
    begin
        if ORIGINAL_LOGIN() = 'roberto' and substring(APP_NAME(), 1, 38) = 'Microsoft SQL Server Management Studio'
           rollback;
    end
    


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quarta-feira, 18 de dezembro de 2013 19:49
    Moderador
  • Você pode fazer trigger de DDL na sua base, nenhum problema, claro que dependerá do evento que você quiser responder, claro que aí não tem como fazer para não conectar em determinada base, são outros eventos.

    Entretanto, ou ela deve ser criada na MODEL para que em cada nova base que seja criada (apenas para CREATE DATABASE....attach, restore não vale...) ela irá replicar, ou então, a cada nova base você terá que criar na mão.


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quinta-feira, 19 de dezembro de 2013 20:22
    Moderador

Todas as Respostas

  • Olá,

          É possível sim! Utilize Trigger de Logon. Veja o exemplo abaixo:

    create trigger Logontrg_Conexao
    on all server for logon
    as
    begin
        if ORIGINAL_LOGIN() = 'roberto' and substring(APP_NAME(), 1, 38) = 'Microsoft SQL Server Management Studio'
           rollback;
    end
    


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quarta-feira, 18 de dezembro de 2013 19:49
    Moderador
  • Jóia Roberto a sua dica. Seria possível criar a trigger numa base de dados de administração para fazer esse controle ou seria necessário esta na base master?

    quinta-feira, 19 de dezembro de 2013 13:24
  • Você pode fazer trigger de DDL na sua base, nenhum problema, claro que dependerá do evento que você quiser responder, claro que aí não tem como fazer para não conectar em determinada base, são outros eventos.

    Entretanto, ou ela deve ser criada na MODEL para que em cada nova base que seja criada (apenas para CREATE DATABASE....attach, restore não vale...) ela irá replicar, ou então, a cada nova base você terá que criar na mão.


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quinta-feira, 19 de dezembro de 2013 20:22
    Moderador
  • Muito bom companheiros, fiz testes e funcionou perfeitamente, porém precisaria criar outra trigger ou adaptar a que Roberto passou para não acessar nem Query Analyser, Profiler, nem mesmo de outras versões do SQL Server.

    Estou tentando solucionar um pequeno problema em outra thread o uso de application role para evitar usar a trigger de logon.

    terça-feira, 7 de janeiro de 2014 12:36