日期:2014-05-19  浏览次数:20715 次

一个或多个字符串(或数字)保存在数据库中,怎么让用户不能修改或修改了我可以知道.
一个或多个,字符串或数字,保存在数据库中.

1.   让用户不能修改是不是只有把数据加密,让用户不知道怎么改,是不是这样.
2.   有没有办法知道用户进数据库直接修改过,而不是我的程序修改的?

------解决方案--------------------
严格地说,如果对方是个高手的话,是做不到的。
------解决方案--------------------
每个字段在入库时都加密!可以自己写一个加密解密类,再提出数据时再反解密.这样如果外人进数据库中改数据,就会出错
------解决方案--------------------
为什么要这样做呢?

那你就把数据库密码管理策略制订好 这样出了问题就责任清晰了

还是那句话 没有安全的代码 只有安全的业务
------解决方案--------------------
针对 2
在oracle里好像容易实现 SQL Server中还没有见过
------解决方案--------------------
不考虑有没有必要实现你需要的功能,单从技术上来讲,我道有个思路,好象sql server中有个东西叫时间戳,你程序把数据修改了,同时把该行的时间戳取出加密存储到一个字段中。当用户手工改表后,该行的时间戳就会发生变化,你可以通过比较你存储的时间戳和当前的时间戳得到该行是不是被手工修改过。
具体怎么做你可以查些资料,不知道我的想法能不能实现你说的要求,多指点
================================================================================
.net技术交流群 QQ:8793209,欢迎职业的程序员加入讨论交流!