谁能告诉我,银行系统为什么禁止执行UPDATE语句?update 账号表 set 金额=金额+10000000000 where 用户名='李 刚'李 刚的权力很大,在他的地盘,他完全可以请银行的人吃顿饭,然后告诉银行的人,说自己最近学习数据库开发,请银行的人在银行的服务器上协助执行一下。而银行内部的人完全可以构造一个更强悍的语句,执行一下。然后换外汇,转账,出国走人请各位达人把这个问题给说明一下。让我们只懂基本计算机技术的人进入金融领域。

解决方案 »

  1.   

    O(∩_∩)O哈哈~
    找个有权限的 用户
    然后顺便把大家的都UPDATE 一下。乘以10000 就可以了 不用加那么多。
    记得条件是身份证号,非用户名
      

  2.   

    首先,计算机安全管理的能力是有极限的,假设:所有的开发和银行IT一起合谋,那当然是无所不能的。实际上这就需要依靠合理银行内部管理制度。
    如果只讨论技术,那么:首先,所有数据操作都有记录,*10000是会立刻被发现。其次,比较健全的银行系统数据库不止一个,当然有数据比较的逻辑。最后,储户的总储蓄金未必是单一字段,它可能是一个复杂计算的结果,所以update没有目标啊。
      

  3.   

    我是在银行上班的,大致的安全机制知道点。你单是update单个表格是没有用的,最后汇总的时候,肯定会被发现。你没有入帐的纪录,但是钱多了,很容易发现。如果你加入入账信息,那么谁,什么时候,因为什么原因+的钱,肯定都有记录,而且通常情况下,对于表格直接操作是禁止的,最多就是用存储过程添加纪录,那么所有信息都会被记录。当然可以更改操作权限,还是比较复杂的。
      

  4.   

    我以前的公司是为银行做BI系统的,除了权限问题,主要是基于性能,Update是非常耗时的,对于电信、银行这种行业数据,动辄千万过亿,你的那个语句随便一个银行可能都是从500万行数据中修改,而且不仅仅修改账号主表,明细表那些也要修改,明细表一般可能都有几千万过亿的数据,我当初使用测试对4000万数据直接UPDATE,12个小时都没出来数据。我相信就算DB2/Oracle那些数据库也不会建议你直接update,我们当时是用insert来实现udpate操作,毕竟插入比udpate的效率高、锁影响少。
      

  5.   

    感觉银行系统业务还是比较传统简单的吧,而且他们都用db2或者oracle 加上中高端存储
    上亿条记录的count应该都是秒杀的
      

  6.   

    一般银行的核心系统通常都要过千万一个项目。除了银行不差钱之外,你觉得这个价格的系统简单吗?真的要做会做死你的。你别以为就存贷款,光存款就能衍生很多业务,然后每种业务都有特定的计算方式,还要算利息、扣税等等。而且就算是db2或者oracle。也不可能非常块,你试试去ATM查钱,也不会很快。