【发布时间】:2011-06-17 21:40:16
【问题描述】:
我有一个从 SQL Server 2008 数据库中检索敏感信息的存储过程。我想修改该过程,以便在任何时候调用它时,它都会在单独的表中记录有关谁调用它的信息。
我认为类似以下的方法会起作用:
declare @account varchar(255);
set @account = (SELECT SYSTEM_USER);
INSERT into AUDIT_LOG(ACCOUNT, TSTAMP)
VALUES(@account, getdate())
;
--Now fetch data
SELECT x,y,z from sensitive_info;
我的问题是客户端应用程序可以调用此存储过程并获取敏感信息,但不提交连接并且永远不会发生 INSERT!
有没有办法强制 INSERT 在 SELECT 之前发生?
我使用的是 SQL Server 2008。
谢谢, 卡尔
【问题讨论】:
标签: tsql sql-server-2008