【发布时间】:2010-05-18 15:56:22
【问题描述】:
希望你能帮忙。
有没有一种方法可以可靠地检测存储过程何时在 SQL Server 上运行而无需更改 SP 本身?
这是要求。我们需要跟踪从我们的企业数据仓库运行报告的用户,因为我们使用的核心产品不允许这样做。核心产品报告和我们添加的大量内部报告都从单独的存储过程返回数据。
我们没有实用的方法来更改调用报告的产品网页部分。我们也无法更改核心产品报告的存储过程。 (在我们每个内部日志的开头/结尾添加一个日志行是微不足道的)。
因此,我试图找到的是,SQL Server (2005 / 2008) 中是否有一种方法可以在任何其他存储过程运行时执行日志记录存储过程,而无需更改这些存储过程本身。
我们对 SQL Server 实例本身具有一般控制权,因为它是本地的,我们只是不想更改产品存储过程本身。
有人有什么想法吗?是否有一种“存储过程执行触发器”?是否有我们可以将自定义 .Net 代码挂接到 SQL Server 的事件模型? (只是从一开始就打折扣,我们想尝试对 SQL Server 进行更改,而不是捕获从产品网页等运行的报告)
赞赏
谢谢
【问题讨论】:
-
我不清楚你的最终目标是什么,但如果你只想要日志记录——也许你只需要启用 C2 审计:msdn.microsoft.com/en-us/library/ms187634.aspx
-
澄清一下,我需要记录执行的存储过程名称、时间和用户/登录执行。谢谢会关注这个。
标签: sql-server stored-procedures logging triggers execution