我们有一个由多年来开发的各种程序使用的SQL Server 2005数据库。 大多数这些程序使用salogin访问数据库。 我的工作是弄清楚什么系统使用数据库来达到什么目的,所以我们可以开始创build具有适当权限的login或以其他方式pipe理访问。
我想知道,对于给定的连接,login了什么IP以及执行了哪些语句。 我怎样才能得到这个信息,我可以做到这一点,而不会显着减慢数据库服务器?
是的,我相当肯定SQL 2005的完整版本附带的SQL分析器工具将启用跟踪该stream量的客户端IP地址。 如果您正在使用SQL Express,请获取: http : //sqlprofiler.googlepages.com 。 编辑configuration文件跟踪,以便它logging最less的信息,然后追踪任何需要的时间段,并且应该能够将其全部计算出来。
由于您使用的是SQL2005,因此您可以使用LOGON触发器捕获进程使用salogin时的情况。 触发器中可用的EVENTDATA提供了相当多的连接信息,包括连接客户端的主机名或IP。
从那里,你可以创build一个服务器跟踪来找出会话正在做什么。 你可以在触发器内做到这一点 – 我找不到任何说不能做的事情,但我自己也没有尝试过。
我不知道根据IP地址做这个的方法。
一种方法是做到这一点:
另一种方法是: