我有一个疑问:
最近要用oracle做一个系统;
发现oracle对于不同的schema/user可以建不同的表,而且互相是不可见的;
各位高人,在具体的项目中是怎么对不同的用户进行权限分配的?
并保证每个用户的操作都是针对相同的表?
谢谢

解决方案 »

  1.   

    群里看到你问题了,具体项目没搞过开发,要保证同一个表,表名前指定用户名不就行了吗  test1.tablename,
      

  2.   

    其实我的问题应该是这样的:从代码的角度上看,肯定是一致,因为从SVN上迁出的代码访问数据库的schema/user是一样的。但是为了数据库的安全性考虑,在开发的过程会对不同的用户赋与不同的权限,比如开发人员,他们用自己的帐号登录pl/sql,但他们需要查询数据库的其它表或者修改创建自己的表,但其实这样的修改创建是针对程序代码中用的schema/user而言的。这时应该怎么赋权限才能保证完成这样的功能呢?
      

  3.   

    开发是用开发库的好吧,难道开发的时候连生产库,你不是搞笑嘛
    剩下的如果是解决故障问题,比如需要开发的配合,那就是对生产库临时赋权的问题,比如query用户等等。
      

  4.   

    回复四楼:
        确实可以把一个表的权限赋给需要使用的用户,但是每个表都赋一次,就算是给角色赋的话,如果表多那也是一个操作量很大的问题,而且用户添加,修改表也是个问题;回复五楼:
       
        可以用一个用户进行开发,这样确实比较省事,实际如果我的问题没有答案我也是准备用这个下下策的;
        但是一个用户的问题也很明显,加测试一起6,7个组员如果有一个误操作了,会非常容易造成表的死锁情况发生;    所以在开发中,对不同的用户是会设置权限的,比如开发组,测试组,UAT测试等;这样能做到权限职责不同;
      

  5.   

    如果你的oltp比较忙,建议还是把开发分开好。
      

  6.   

    开发可以使用开发库(表空间), 测试可以用测试表空间(甚至完全可以共享开发库用的表空间,取决于你的产品或者项目的规模)。最多也就两个用户。无非就是一个配置问题。
    至于搞这么复杂吗?同时访问造成死锁,DBA就需要处理这种情况。并发访问是常有的事。你把问题想得太复杂了。
      

  7.   

    我刚学oracle ,也是在这一块有点迷茫。关注中