发信人: flyingmist() 
整理人: leitiger(2002-06-05 23:45:28), 站内信件
 | 
 
 
edison你可记得这个问题?就是你公布的完美解决方案(用Trigger来记录 对表的操作)。
  有人这么用过吗?我想问一下: 1。如果很多表都有触发器的话对性能有没有影响? 2。能不能分析出来哪几个记录是由同一个事务提交的?
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.159.155]
 
  发信人: edison (edison), 信区: Powerbuilder 标  题: Re: 关于记录操作日志的解决方案的问题 发信站: 网易 BBS (Sat Nov 13 23:46:44 1999), 站内信件
  事先申明我还真没试过,只是理论上说明了可行性。呵呵,不好意思!
  1. 如果很多表肯定会影响性能。但是是不是应用中的所有表都需要记录呢?    我觉得这个问题应该仔细权衡一下。
  2. 估计这个是不太可能了。但是我们可以增加一个时间信息。可以知道    哪个用户什么时候如何改变了数据。至于是不是一个事物无所谓了。    而且用户根本不明白事物的概念,他不会在乎什么数据是在一个事物中    修改的或删除、增加的。你不会有什么特殊的需求吧?
  -- 谢谢没有在 "将本文章寄一份给原作者" 处打勾, 再次感谢!
  ※ 来源:.网易 BBS bbs.netease.com.[FROM: bbs.szptt.net.cn]
 
  发信人: flyingmist (飘雾), 信区: Powerbuilder 标  题: Re: 关于记录操作日志的解决方案的 发信站: 网易虚拟社区 (Sun Nov 14 00:08:48 1999), 站内信件
  是啊,我有特殊要求,我要知道具体什么时间什么人做了什么事,以便追查 事故责任。你知道有些单位对责任由谁负是很重视的。
  我们每个事务要改好几个表的,有的要改十几个。如果事后追查出来某项业 务不该做,就应该全都rollback,所以日志里要记得再清楚些才行。Sybase 说是有个审计功能,我们有人试了一下,它就是又建个数据库,有两个表, 记录一些操作,但是信息量似乎不够详细,不知道怎么审计。
  如果在存储过程里顺便记录的话也有问题:无法记录非法操作者的活动,例 如直接打开数据库修改数据的。对了,这种情况下Trigger会记录吗?
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.159.155]
 
  发信人: edison (edison), 信区: Powerbuilder 标  题: Re: 关于记录操作日志的解决方案的 发信站: 网易 BBS (Sun Nov 14 08:34:41 1999), 站内信件
  【 在 flyingmist (飘雾) 的大作中提到: 】 : 是啊,我有特殊要求,我要知道具体什么时间什么人做了什么事,以便追查 : 事故责任。你知道有些单位对责任由谁负是很重视的。
  增加一个时间信息不可以吗? 反正用户他也不懂事务的概念。 增加一个时间信息后不就知道什么人、什么时间做了什么事。 :  : ...... : 如直接打开数据库修改数据的。对了,这种情况下Trigger会记录吗?
  这个 Trigger 肯定不能纪录。我觉得这个问题应该属于你的数据库安全问题。 你不应该让用户有可能直接打开数据库(当然用户以 SA 登陆我们就没办法了)。
  不好意思,瞎说了几句。希望对你有点帮助!
  -- 谢谢没有在 "将本文章寄一份给原作者" 处打勾, 再次感谢!
  ※ 来源:.网易 BBS bbs.netease.com.[FROM: bbs.szptt.net.cn]
 
  发信人: flyingmist (飘雾), 信区: Powerbuilder 标  题: Re: 关于记录操作日志的解决方案的 发信站: 网易虚拟社区 (Sun Nov 14 09:38:20 1999), 站内信件
  用户不知道"事务"这个词,可不是没有事务的概念,好比你在银行转帐,银行 能允许你把提取操作rollback而把存入保留着吗? 记时间不行啊,同时有很多人在操作的。 事实上还不止时间问题,还有操作者的问题。我们不是每个操作员一个login 的。 谢谢你啦,只好不嫌麻烦手工处理啦。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.159.155]
 
  发信人: edison (edison), 信区: Powerbuilder 标  题: Re: 关于记录操作日志的解决方案的 发信站: 网易 BBS (Sun Nov 14 15:41:01 1999), 站内信件
  如果你的每个用户对应一个 login ,那么记录什么 login 什么时候做了什么事。
  这样能否满足?如果可以满足,我觉得你现在只需要将你的几个用户共享一个 
  login 改成一个用户对应一个 login 就行了。而且做这种更改是很简单的。首先
  你的所有 CODE 与表结构不用变。也就是你以前关于用户权限控制的代码与自己建
  的表都不用变。只是用户的增删改模块和用户登陆 SERVER 部分少做修改即可。
  用户增删改部分在往自己的用户表中增删改数据的同时调用 sp_addlogin 为 
  Server 也增加一个 Login 。然后是数据库授权问题,数据库授权问题使用 
  sp_addalais 为你现有的数据库用户增加一个别名。你现在的软件是一个模块的
  所有用户使用一个 login ,不同的 login 在数据库中具有不同的访问权限。
  这样你的 sp_addalias 就为相应的 login 添加别名。这样后台权限设置也不用
  改(这点应该很重要!)。然后是数据库的安全问题,现在每个用户对应一个
  login、Password,聪明的用户就可以绕过你的前台直接访问数据库。不要紧,
  我们在调用 sp_addlogin Username Password 时将用户输入的 Password 进行
  一次加密变换。这样用户根本不知道真正的 login 密码,所以他不可能绕过你
  的前台去访问数据库。即使加密变换很简单也无所谓,因为他不可能知道加密后
  的密文。一个未知密文和密码变换过程的加密应该没人可以解的。如果再配合
  上次我们讨论的安全连接问题(Client 与 Server 中传递的数据全部经过加密)
  那你的软件就绝对安全,至少目前没法解开。
  至于你的 rollback 问题(回滚提款数据同时要回滚存款数据),这就应该是你
  的软件前台问题。前台肯定要做一个界面让管理员察看什么时候什么人做了什么。
  至于回滚操作就应该在你的这个界面中完成了。
      虽然我说的这些其中一些没有试过,但是一定可行!
  Good luck!
  -- 谢谢没有在 "将本文章寄一份给原作者" 处打勾, 再次感谢!
  ※ 来源:.网易 BBS bbs.netease.com.[FROM: 202.96.191.124]
  | 
 
 
 |