none
Auditoria SQL Server 2008 R2 RRS feed

  • Pergunta

  • Bom Dia a todos

    Gostaria de saber se é possivel implementar uma auditoria a nivel de banco ou server onde eu seja capaz de:

    • Auditar a maquina que esta conectada a minha instancia que esta sendo auditada.
    • Auditar a aplicação que esta conectada à minha instancia que esta sendo conectada.

    Ja estou conseguindo monitorar os comandos, o user, e o horário em que alguem esta no meu banco, mas os dois acima eu não consigo.

     

    segunda-feira, 4 de junho de 2012 13:21

Respostas

  • Douglas, o Trace do SQLServer faz exatamente o que vc precisa.

    Mas se vc quer saber o que está sendo executado e por quem:

        SELECT [Spid] = session_Id
    	, ecid
    	, [Database] = DB_NAME(sp.dbid)
    	, [User] = nt_username
    	, [Status] = er.status
    	, [Wait] = wait_type
    	, [Individual Query] = SUBSTRING (qt.text, 
                 er.statement_start_offset/2,
    	(CASE WHEN er.statement_end_offset = -1
    	       THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    		ELSE er.statement_end_offset END - 
                                    er.statement_start_offset)/2)
    	,[Parent Query] = qt.text
    	, Program = program_name
    	, Hostname
    	, nt_domain
    	, start_time
        FROM sys.dm_exec_requests er
        INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
        CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt
        WHERE session_Id > 50              -- Ignore system spids.
        AND session_Id NOT IN (@@SPID)     -- Ignore this current statement.
        ORDER BY 1, 2
    


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco

    terça-feira, 5 de junho de 2012 14:21

Todas as Respostas

  • Douglas, primeiro como você está fazendo essa Auditoria? Via Trace?


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco

    segunda-feira, 4 de junho de 2012 18:25
  • Estou fazendo pelo DataBase Audits do SQL Server 2008 R2

    eu consigo auditar comandos sendo executados, logins de quem esta executando, mas preciso saber qual a maquina que esta concetando ao sql e qual a aplicação esta fazendo isso.

    terça-feira, 5 de junho de 2012 14:11
  • Douglas, o Trace do SQLServer faz exatamente o que vc precisa.

    Mas se vc quer saber o que está sendo executado e por quem:

        SELECT [Spid] = session_Id
    	, ecid
    	, [Database] = DB_NAME(sp.dbid)
    	, [User] = nt_username
    	, [Status] = er.status
    	, [Wait] = wait_type
    	, [Individual Query] = SUBSTRING (qt.text, 
                 er.statement_start_offset/2,
    	(CASE WHEN er.statement_end_offset = -1
    	       THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    		ELSE er.statement_end_offset END - 
                                    er.statement_start_offset)/2)
    	,[Parent Query] = qt.text
    	, Program = program_name
    	, Hostname
    	, nt_domain
    	, start_time
        FROM sys.dm_exec_requests er
        INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
        CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt
        WHERE session_Id > 50              -- Ignore system spids.
        AND session_Id NOT IN (@@SPID)     -- Ignore this current statement.
        ORDER BY 1, 2
    


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco

    terça-feira, 5 de junho de 2012 14:21
  • Então Fausto, não posso usar o trace porque no meu caso a auditoria iré ficar rodando 24X7, na verdade estou fazendo isso para casos em que pessoas queriam estar vasculhando nossos bancos de dados.
    terça-feira, 5 de junho de 2012 18:21
  • Douglas, não entendi. O Trace pode ficar 24x7 normalmente, eu uso dessa forma faz muito tempo. Mas de qualquer forma, o select que eu te enviei acima trás as informações que você precisa.


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco

    terça-feira, 5 de junho de 2012 19:32
  • Douglas,

    Então, mas com o Select do Fausto você poderá consultar estas atividades que estão sendo realizada a qualquer momento, além disso, será possível armazenar o resultado deste Select em outra table, como também criar um Job para fazer isso em horários programados.


    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]

    quarta-feira, 6 de junho de 2012 11:56
    Moderador