【问题标题】:sql server enable log for specific userssql server 为特定用户启用日志
【发布时间】:2015-10-05 17:21:58
【问题描述】:

我在我的数据库中创建了几个用户帐户,供多个用户使用。现在我想要一种方法,以便我可以记录所有运行的查询和应该记录那些特定用户所做的操作。

某些特定用户是否可以记录他们的事件?

谢谢

【问题讨论】:

    标签: sql sql-server database


    【解决方案1】:

    从 SQL Server 2008 R2 开始,您可以在 Management->Sessions 下使用Extends Events

    您可以为 sql_statement_completed 事件创建会话日志记录并过滤特定用户。

    您可以在MSDNmy previous answer 上查看更多类似问题。

    【讨论】:

      【解决方案2】:

      您不能这样做,即您不能为特定用户启用日志记录并保留其余用户。如果您想获取用户的具体详细信息,可以使用 SQL Server Management Studio 从活动监视器检查活动。

      您可以尝试this查询来获取查询:

      SELECT cr.DatabaseName
          ,s.session_id
          ,s.host_name
          ,s.program_name
          ,s.client_interface_name
          ,s.login_name
          ,s.login_time
          ,s.nt_domain
          ,s.nt_user_name
          ,c.client_net_address
          ,c.local_net_address
          ,cr.ObjName
          ,cr.Query
      FROM sys.dm_exec_sessions AS s
      INNER JOIN sys.dm_exec_connections AS c ON c.session_id = s.session_id
      CROSS APPLY (
          SELECT db_name(dbid) AS DatabaseName
              ,object_id(objectid) AS ObjName
              ,ISNULL((
                      SELECT TEXT AS [processing-instruction(definition)]
                      FROM sys.dm_exec_sql_text(c.most_recent_sql_handle)
                      FOR XML PATH('')
                          ,TYPE
                      ), '') AS Query
      
          FROM sys.dm_exec_sql_text(c.most_recent_sql_handle)
          ) cr
      where s.nt_user_name = '' -- filter here your user name
      and s.session_id <> @@SPID
      ORDER BY c.session_id
      

      附带说明:

      我通常使用这个查询来获取过去执行的查询列表

      SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
      FROM sys.dm_exec_query_stats AS deqs
      CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
      ORDER BY deqs.last_execution_time DESC
      

      【讨论】:

      • 好的,有什么方法或查询可以得到特定用户执行的查询列表吗?
      • 感谢您的回复。那么你有什么建议让特定用户的日志在数据库上完成工作,而且,活动监视器是否占用更多内存,因为它将在服务器上使用。
      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多