操作监控问题!(200分)

  • 主题发起人 主题发起人 shmm
  • 开始时间 开始时间
S

shmm

Unregistered / Unconfirmed
GUEST, unregistred user!
由于本单位员工的素质值得商榷,常常做错帐,以前的操作监控只是显示了记录编号、用户
姓名、修改(删除、添加)时间。所以即使给他们看监控记录、他们也会说上面又没有写
我改动了什么,你有什么证据。所以现在没有办法,我只能做详细的操作监控,就是记录
用户修改(删除、添加)了那些具体字段,希望各位大哥帮忙解决,最好具体一点,当然
有代码的分数优先考虑哦,哈哈!
 
比较简单的办法是使用触发器,在需要监控的数据表中绑定它,但数据被修改或添加或删除时,由触发
器在指定的监控数据表中记录用户名、表名、日期时间、操作前后的数据内容等
 
我的用户权限控制在表中,不在数据库里,你这种方法不可行,
我怎么传用户名到触发器呀!苦闷,现在大富翁也穷了!
 
做帐又不是做别的, 每条记录都要有操作员ID字段才行的,
 
取客户机的机器名,再加上操作时间,我就是这样做的,他们现在已无话可说了
 
把记录先写到临时表中,提示是否确认修改,然后把记录望数据库和监控表个写一份
 
TO:VXDWAN AND ALL
如果他们叫嚷着:“这台计算机又不是我一个人用”肯定叫你胸闷,事实情况也是这样
计算机和人不是一一对应。
 
//我怎么传用户名到触发器呀!
你比他们还会叫嚷呢 [:D]
正如kkyy兄弟所说,给每个操作员设置用户和密码,存入数据时将用户ID带进去。
这样,传用户名到触发器有什么问题啊,他们的叫嚷也就没什么了
 
TO SMALLBS
如果如你说的那样,我怎么写这个触发器你,就是判断哪个字段改动过,哪个字段没有
修改过,又是一个比较烦的事情,另外还有一点不明白。
存入数据的时候是有个ID带了进去,那么当修改的时候,我怎么处理呀。
总不能在表里加“修改人1”“修改人2”“修改人3”“修改人4”。。。“修改人N”
这么多个字段吧,怎么办呢?还有删除的时候的ID怎么取呢?
 
首先 CREATE TABLE tablenamex (.....) //监控数据表 用户ID、日期时间、操作数据内容等

CREATE TRIGGER triggername (插入、修改)
ON 需要监控的数据表
FOR INSERT,UPDATE
AS
INSERT INTO tablenamex
select field1(USERID),field2(时间日期),field3,...(数据内容) FROM inserted
GO

//严格地说,用户不该有删除记录的权限,通常使用记录有效或作废的标志码来处理它。
对于删除记录: 就不要写触发器啦,因为确实不太容易获得当前的用户ID
直接在客户端Dataset的BeforeDelete事件中 INSERT INTO tablenamex values (.....)
同样,对于插入和修改,如不习惯用TRIGGER,也可直接在客户端Dataset的 BeforePost 事件中 INSERT.....
 
新旧记录保存到一张对照表中,显示的是两条,而修改过的用不同的颜色表示
 
TO SMALLBS AND ALL :
你说的情况我也知道,不过就你的解释还是没有讲清楚修改记录的时候,
在监控中体现出修改的情况!当然你说的有一定的道理,只是我希望能够做的
完美一些,别说我挑剔哦,希望大家再继续努力!
相信一定有这方面的高人有比较全面的解释!
 
我也很想知道,
咋哪个单位素质差的都这么多啊?还占据着重要岗位。我们这里就好多!!
 
是吗,可恶,帮助提前
 
既然是c/s模式,你就可以在beforePos里做判断,
如果FieldByName('A').OldValue <> FieldByName('A').NewValue,
就可以记录该字段的信息到文件(最方便的是按时间做成日志文件)
[20021228]
FieldName=A
OldValue= 'OldValue'
NewValue='NewValue'
UserId='UserID'
{以上思想只供参考}
 
填写监控日志(另外一张数据库表)吧,把所有的修改操作都记录下来(包括用户ID),然后定期删除。
 
不好意思,还是不明白,大概没人做过吗?
TO ArJianzeng:
你说的FILEDBYNAME(‘A’)。NEWVALUE;
和OLDVALUE怎么我没有看到过呀!
有这个属性吗?
 
希望大家关心!
 
花费很多的心血,但结果不一定好。
他们总会有话说的,对他们,我已经死心了,干错事的人不会承认的,
就算你有记录,他们也会说是你改的。
 
后退
顶部