none
Logar acessos pelo Management Studio RRS feed

  • Pergunta

  • Boa tarde Senhores,

    Tenho a necessidade de logar os acessos somente pelo Management Studio.
    Alguém pode me ajudar?

    Obrigado,

    Breno Padovan.

    terça-feira, 3 de abril de 2012 20:41

Respostas

Todas as Respostas

  • Boa noite,

    Veja se o exemplo abaixo te ajuda.

    Se for mexer ou manipular a trigger abaixo ou mesmo testar triggers de logon, a minha sugestão ( ja apanhei por causa deste tipo de trigger..rs ), se já não estiver habilitado, habilita DAC.

    USE msdb;
    GO
    
    -- CREATE TABLE
    CREATE TABLE EXEMPLO_LOGON(
    DATA	 DATETIME,
    SPID	 INT,
    NAME	 varchar(128),
    HOST	 VARCHAR(128),
    PROGRAMA VARCHAR(128),
    USUARIO	 VARCHAR(128)
    );
    
    -- CREATE TRUGGER
    CREATE TRIGGER AUDITORI_ManStud ON ALL SERVER
    FOR LOGON
    AS
    
    IF APP_NAME() like 'Microsoft SQL Server Management Studio%'
    -- INSERINDO LOG
    insert msdb.dbo.EXEMPLO_LOGON
    select  getdate(),
    		@@spid,
    		s.login_name,
    		s.[host_name],
    		s.program_name,
    		CURRENT_USER
    from sys.dm_exec_sessions s 
    where s.session_id = @@spid
    and is_user_process = 1
    go
    
    -- DROPANDO TRIGGER DE SERVIDOR
    DROP TRIGGER AUDITORI_ManStud ON ALL SERVER
    
    -- DROPANDO TABELA
    DROP TABLE EXEMPLO_LOGON
    

    Abçs,

    Adriano Nascimento

    • Sugerido como Resposta BPadovan quinta-feira, 5 de abril de 2012 21:17
    terça-feira, 3 de abril de 2012 21:48
  • Olá Pedra, como vai?

    Dentro do próprio MS SQL Server existe a opção de Audit onde o mesmo loga as entradas e tentativas de entrada no MS SQL Server bastando apenas habilitar.

    O exemplo que estou postando aqui é no MS SQL Server 2000 mas nas outras versões continua sendo o mesmo.

    http://technet.microsoft.com/en-us/library/dd277388.aspx

    De uma olhada pra ver se atende sua necessidade.

    Um forte abraço


    Clayton Santos
    ITIL|MCTS
    Administrador de Banco de Dados
    casclayton@gmail.com
    http://casclayton.wordpress.com/

    quarta-feira, 4 de abril de 2012 03:47
  • Boa noite,

    Veja se o exemplo abaixo te ajuda.

    Se for mexer ou manipular a trigger abaixo ou mesmo testar triggers de logon, a minha sugestão ( ja apanhei por causa deste tipo de trigger..rs ), se já não estiver habilitado, habilita DAC.

    USE msdb;
    GO
    
    -- CREATE TABLE
    CREATE TABLE EXEMPLO_LOGON(
    DATA	 DATETIME,
    SPID	 INT,
    NAME	 varchar(128),
    HOST	 VARCHAR(128),
    PROGRAMA VARCHAR(128),
    USUARIO	 VARCHAR(128)
    );
    
    -- CREATE TRUGGER
    CREATE TRIGGER AUDITORI_ManStud ON ALL SERVER
    FOR LOGON
    AS
    
    IF APP_NAME() like 'Microsoft SQL Server Management Studio%'
    -- INSERINDO LOG
    insert msdb.dbo.EXEMPLO_LOGON
    select  getdate(),
    		@@spid,
    		s.login_name,
    		s.[host_name],
    		s.program_name,
    		CURRENT_USER
    from sys.dm_exec_sessions s 
    where s.session_id = @@spid
    and is_user_process = 1
    go
    
    -- DROPANDO TRIGGER DE SERVIDOR
    DROP TRIGGER AUDITORI_ManStud ON ALL SERVER
    
    -- DROPANDO TABELA
    DROP TABLE EXEMPLO_LOGON

    Abçs,

    Adriano Nascimento


    Bom dia Adriano, tudo bem?

    Tentei rodar o código que me passou mais está dando o seguinte erro:

    Achei interressante dessa forma.

    Poderia me ajudar?

    Obrigado,

    Breno.



    quinta-feira, 5 de abril de 2012 11:48
  • BPadovan,

    Para criar os objetos conforme do exemplo do Adriano executando o script inteiro de uma só vez, insira a expressão GO após a criação da tabela conforme exemplo abaixo:

    CREATE TABLE EXEMPLO_LOGON(
    DATA     DATETIME,
    SPID     INT,
    NAME     varchar(128),
    HOST     VARCHAR(128),
    PROGRAMA VARCHAR(128),
    USUARIO     VARCHAR(128)
    );
    GO

    Caso tenha alguma dúvida em relação a expressão GO verifique o seguinte link:RespondidoUsar variáveis depois do GO.

    Att,


    Rafael Godoi Sabadin
    http://www.linkedin.com/in/rafaelgodoisabadin


    Classifique as respostas. O seu feedback é essencial.

    • Sugerido como Resposta BPadovan quinta-feira, 5 de abril de 2012 21:18
    quinta-feira, 5 de abril de 2012 12:03
  • BPadovan,

    Para criar os objetos conforme do exemplo do Adriano executando o script inteiro de uma só vez, insira a expressão GO após a criação da tabela conforme exemplo abaixo:

    CREATE TABLE EXEMPLO_LOGON(
    DATA     DATETIME,
    SPID     INT,
    NAME     varchar(128),
    HOST     VARCHAR(128),
    PROGRAMA VARCHAR(128),
    USUARIO     VARCHAR(128)
    );
    GO

    Caso tenha alguma dúvida em relação a expressão GO verifique o seguinte link:RespondidoUsar variáveis depois do GO.

    Att,


    Rafael Godoi Sabadin
    http://www.linkedin.com/in/rafaelgodoisabadin


    Classifique as respostas. O seu feedback é essencial.


    Senhores, segue mensagem de erro quando um usuário tenta logar.
    Esse usuário tem acesso somente a um banco específico, sendo que tenho vários bancos.

    O que posso fazer para resolver essa mensagem?

    Obrigado,

    Breno Padovan.


    quinta-feira, 5 de abril de 2012 15:30
  • Breno,

    Qual é o banco de dados padrão configurado para este usuário?

    Altere o banco de dados padrão deste usuário para Master, para que ele possa ter a capacidade de envolver o trigger.

    Veja este link:

    http://blog.sqlauthority.com/2009/06/27/sql-server-fix-error-17892-logon-failed-for-login-due-to-trigger-execution-changed-database-context-to-master/


    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, 5 de abril de 2012 18:55
    Moderador
  • Junior obrigado pela ajuda.

    O banco padrão desse usuário já está para Master e o erro persiste.

    Não sei onde posso estar errando...

    Breno.

    quinta-feira, 5 de abril de 2012 21:32
  • Senhores, desculpe insistir nesse assunto, mais ainda não consegui resover o meu problema.

    Da maneira que o Clayton Santos disse eu consigo logar, mais o sql loga os acessos feitos pelo ERP também, deixando o log muito extenso.

    Na verdade o que preciso é somente logar pelo Management Studio, mais continuo com o problema acima.

    Obrigado,

    Breno Padovan.

    segunda-feira, 9 de abril de 2012 14:20