none
Descobrir usuário Windows RRS feed

  • Pergunta

  • Fala pessoal boa tarde.

    Estou precisando desenvolver uma trigger para auditar quem conecta na minha instancia usando login do SQL.

    Exemplo o usuario [meudominio\tiago] conecta na instancia usando o login SA, então este login sera logado.

    Eu já tenho ideia de como fazer porém não estou conseguindo pegar o usuário do windows, tem como pegar essa informação?


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net

    quinta-feira, 16 de julho de 2015 18:29

Todas as Respostas

  • Caso possuir permissão para executar a procedure xp_cmdshell o código abaixo deve funcionar.

    Você só precisa parsear o retorno da procedure para formar DOMAIN\USERNAME

    Faça os testes e nos diga o resultado.



    use master
    go

    exec master.dbo.sp_configure 'show advanced options', 1
    reconfigure with override
    go

    exec master.dbo.sp_configure 'xp_cmdshell', 1
    reconfigure with override
    go

    exec xp_cmdshell 'set username' -- Retorna o usuário
    exec xp_cmdshell 'set userdomain' -- Retorna o domínio


    quinta-feira, 16 de julho de 2015 19:07
  • André,

    O comando retorna o nome da conta que esta executando o serviço e não usuario que esta logado no minha maquina.


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net

    quinta-feira, 16 de julho de 2015 19:11
  • Tiago,

    Veja se exemplo pode te ajudar:

    SELECT sess.session_id, 
                sess.login_time, 
                sess.original_login_name, 
                sess.login_name, 
                sess.host_name, 
                sess.program_name 
     FROM sys.dm_exec_sessions sess Inner JOIN sys.dm_exec_connections conn 
                                                               ON sess.session_id = conn.session_id
    WHERE program_name = 'Microsoft SQL Server Management Studio'

    Através das DMVs sys.dm_exec_session e sys.dm_exec_connections acredito que você consiga obter o que deseja.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 17 de julho de 2015 13:32
    Moderador