同义词,简单的说就是在用户A下有对象A.a,在没有同义词的情况下如果用户B要访问A.a,那么需要用户A对用户B授予访问A.a的权限,而且每次用户B在访问时都要输入完整的对象明(A.a);但是同义词就不同了,只要在B用户下创建同义词c代表A.a那么,用户B在访问c时就想当与访问A.a,而且不用授权,因为c是用户B自己的对象

解决方案 »

  1.   

    UserX通过普通工具不能连上Oracle,通过程序可以。则可断定UserX只是程序的用户而非Oracle的用户,至少在逻辑上是。并且程序中必有一套用户、角色、权限的规则,相信就是所谓的权限表。所以,UserX是不是Oracle用户关系并不是很大,关键是UserX必定是程序的用户。客户端临时赋予角色的想法,有点异想天开,实在想不出这样做的理由,原因是至少用户非正常退出时你的角色回收很麻烦。相信都是由程序而不是Oracle在管理UserX,更倾向于相信UserX不是Oracle的用户。
      

  2.   

    象这样的情况,你还是根据一定的情况赋予UserX用户一些相应的权限,如CONNECTgrant connect to userx;
    grant select to  userx on user2.tab;
    这样USERX就有了访问user2.tab表的读的权限。
      

  3.   

    我的感觉与foxjian(胖子) 是一样的,但单位的专家否定了。他跟我解释的时候总是满口的“同意词”,我想是不是搞清了“同意词”的功用与用法,这个问题就可以搞清了?
      

  4.   

    不知 LGQDUCKY(飘)能再说得详细些?
    grant是不是同义词的用法呢? 使用时的条件限制是什么?
      

  5.   

    grant是授权,给某个用户某个权限。