我们有一个 COTS(现成的商业)应用程序正在更改其数据库模式,足以使现有查询返回无效数据。想想“select * from cars where cartype='car'”,但现在我们也添加了卡车......所以你需要做“select * from mcars where cartype='car' and subtype='car'”来获得实际的汽车结果(忽略这个的疯狂......在晦涩的实际情况下更有意义)。
有没有办法审计给定的 sql server 登录执行的所有 SQL 语句?
是否有可以执行此操作的 SQL Server“代理”或其他内联修改(以编程方式用视图替换表)?
编辑
我们正在寻找捕获查询,以便我可以将它们与规则引擎(即 perl 脚本)进行匹配,以寻找缺少第二个参数的情况。
即..“如果查询包括“cartype”但不包括“subtype”,请给我发电子邮件提醒”
如果您正在运行 SQL 2005 或更高版本,则默认跟踪已在运行,可为您提供一定级别的审核。在这里阅读更多信息:http ://www.mssqltips.com/tip.asp?tip=1111
您还可以创建自己的服务器端跟踪来审核您需要的内容。我在这里写了如何做到这一点:http: //sqlchicken.com/2009/07/how-to-create-a-server-side-trace-with-sql-profiler/
您还可以观看有关如何使用 Profiler 工具的视频以了解正在发生的事情:http ://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler