因此,我的任务是查看这台旧数据库服务器,看看是否有任何数据库正在使用,以便我们将其关闭。我有几个数据库的用途不明,如果我能以某种方式看到日志或连接历史记录,我就可以检查 IP 并查看使用它的应用程序的来源。有什么想法吗?
答案1
SQL2005 默认只记录失败的连接(错误的用户名等),而不记录成功的连接。您可以使用活动监视器来查看任何目前活跃连接,但这并不是追溯性的。
我们通常会将数据库切换到只读/受限访问模式(只有 DBA 可以访问数据库),然后看看谁开始抱怨:)
答案2
这不会向你展示WHO正在查询数据库,但此脚本应显示自上次重新启动服务器以来访问了哪些数据库:
SELECT db_name(database_id) as DBName,
max(last_user_seek) as last_seek,
max(last_user_scan) as last_scan,
max(last_user_lookup) as last_lookup,
max(last_user_update) as last_update
FROM sys.dm_db_index_usage_stats
Group By db_name(database_id)
Order by db_name(database_id)
(仅限 SQL 2005+)
运行由 DatabaseID 过滤的 SQL 跟踪来识别实际执行查询的主机名和用户名。
答案3
这篇文章可能会给你指明正确的方向!!