退役:如何根据我的SQL Server列出客户端/应用程序?

我有一个SQL框,我想退役。 在这之前,我想了解所有可能依赖机器的应用程序,而不是只closures它,听到人们尖叫。

做这个的最好方式是什么?

我知道我可以运行一段时间的SQL跟踪获取login信息等 – 有没有其他的方式?

我想知道更多关于调用者,包括请求来自的IP地址或计算机名称,应用程序名称,凭证。 大多数情况下,我想以某种方式知道是否有许多应用程序可能运行在一个与相似的凭据调用框。 我也希望能够知道有2个应用程序(例如),而不是他们看起来像一个。

如果SQL Server本身没有给我这个服务器级别的其他工具,我可以利用?

你可能想看看WireShark。 您可以将其安装在SQL框中,并监视到SQL服务器的所有传入请求。 我会把wireshark中的filter缩小到只是在你的SQL端口上发出请求的东西。 我不确定你想要运行多长时间 – 但是一旦你完成,你可以采取这样的跟踪,并通过filter运行查询,以获得像独特的IP等东西回来…

我认为在这一点上,你的想法是一丝不苟。 没有其他的方法可以明确地find这些信息 – 你不知道客户端可能连接的是什么,你只能看到客户端连接的是什么。

有些事情可能会帮助你猜测:

  1. 列出所有的数据库。 试图找出应用程序可能正在使用它们。
  2. 列出所有的SQLlogin名。 这可能有助于你的上述观点。 如果每个人都连接成SA,那么这就是其中一个不好的主意。
  3. 回顾你的任何文档 – 将来的好文档将会防止这种情况再次发生,这是很难强调的。

另外,当你分解它时:在closures它之前,只需拔掉LAN电缆一周。 然后,如果有人需要一些东西,那么就是一秒钟的修复,你不会冒险像一个旧的磁盘拒绝再次旋转起来。 当然,在拔掉它之前备份整个血腥的东西。

什么SQL版本?

发布SQL 2005可以创build一个login触发器并将所有login事件logging到一个表中。 eventdata ()和sys.dm_exec_connections将包含一些(如果不是全部的话)你正在寻找的细节。