主机A上有数据库用户A,现在想在主机B上新建数据库用户B,使其能访问主机A上数据库用户A的所有表,但不能修改这些表的数据,请各位帮忙提供方案,时间比较紧,谢谢各位!
我尝试的方案有:
1、在用户B上建DBLINK访问用户A的表。但这样无法限制用户B对用户A的表的修改权限;
2、在用户B上建DBLINK访问用户A的表,同时在用户B中建只读视图对这些表进行封装,以此限制用户B对用户A的表的修改权限。但这样当用户A的表结构发生变化时,用户B的视图不能自动同步更新。

解决方案 »

  1.   

    1.在主机a上新建一个用户c,赋予其select 权限
    2.在主机b上建dblink连接上用户c
      

  2.   

    1.在主机a上新建一个用户c,赋予其select 权限 
    2.在主机b上建dblink连接上用户c可以测试一下!
      

  3.   

    我们公司就是这么做的
    给用户授权访问需要访问的表,然后建公共同义词
    grant select on a.aaaaa to c;
    create public synonym aaaaa for w.aaaaa;
    用户c即可通过
    select * from aaaaa
    查询到a.aaaaa表