H hnwhh Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-26 #1 现在碰到这样的问题,用户的数据库莫名其妙的被删除一条,怀疑有可能是程序中隐含着某个删除语句,也许是BUG,但始终无法找到。<br>我想在数据库中限制某个表中不允许删除数据,这样就能防止数据被删除。程序本身也不允许删除该表的数据。<br>不知道如何限制表被删除数据
现在碰到这样的问题,用户的数据库莫名其妙的被删除一条,怀疑有可能是程序中隐含着某个删除语句,也许是BUG,但始终无法找到。<br>我想在数据库中限制某个表中不允许删除数据,这样就能防止数据被删除。程序本身也不允许删除该表的数据。<br>不知道如何限制表被删除数据
D dtboyi Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-26 #2 如果你用的是sql 数据库的话,你就在sa的权限中减去delete权限。
Z zhaokaien Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-27 #7 你可以用触发器监视,然后记录进行非法操作的情况,比如操作了哪张表,这个表的主键是什么,主键得值是多少,进行的是什么操作,将这些信息放到另一个表中,然后写个程序轮询这个表,发现有删除操作的时候,一方面可以将数据还原(trigger里面记录了DELETED,INSERTED等信息),一方面也可以查出是谁干的!!
你可以用触发器监视,然后记录进行非法操作的情况,比如操作了哪张表,这个表的主键是什么,主键得值是多少,进行的是什么操作,将这些信息放到另一个表中,然后写个程序轮询这个表,发现有删除操作的时候,一方面可以将数据还原(trigger里面记录了DELETED,INSERTED等信息),一方面也可以查出是谁干的!!
H hnwhh Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-27 #8 程序在客户那才有这个问题,在公司是没办法测出来这种情况,而且是非常偶然,一个月出那么一两次。trigger好象无法阻止表被删除吧<br>真够头疼的
Q qlx_zxm@163 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-09 #15 最好就是不用SA登录,另建一个登录用户,然后为这个用户设置相应的权限,使用其对某些表不具备删除的功能
Q qlx_zxm@163 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-09 #16 看看有没有表间关系,说不定是主外键造成的?
H hfqxfx Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-09 #17 你可以在触发器中使用事务回滚ROLLBACK TRAN这样就能限制删除,但是所有对此表的删除操作都将无效。