现有A,B两地, 现在想在A地随时访问B服务上的ORACLE数据库中的数据(仅是访问, 不做修改), 请问有没有办法, 现在使用的是B/S架构开发的, 使用EJB, JSP开发的.B地能否向异地的用户设权限, 给异地的用户提供一个端口, 使A地的用户可通过这个端口访问B地的数据库中的内容

解决方案 »

  1.   

    1)可以在B地为A地单独建一个用户aa,aa用户只有只读权限
    2)A地建立dblink,通过aa用户访问B地
      

  2.   

    database link可以很容易实现,包括增删改查等操作.
      

  3.   

    创建一个dblink:
    创建语法:
    create database link linkname
    connect to user
    identified by usrpwd 
    using 'demona';其中
    --demona为用net8 easy config创建的连接字符串
    目的方数据库的init.ora文件中的global_names设为false
    重新启动数据库设置才能生效
    或者用sys用户执行
    alter system set global_names=false;语句中使用的方法:
    select * from tbname@linkname where rownum<100;
      

  4.   

    可是如果用DBLINK实现的话, 安全性会差一些吧
      

  5.   

    1)"这种异地访问的话, 在中间出问题了"
      局域网内同样会出现网络通讯问题的,主要取决于网罗的稳定性.
    2)"中间出问题了, 没有提示"
      可以写错误处理,进行判别.
    3)"被访问数据库出问题了, 访问端也会出问题"
      本地数据库也会出问题.如果不想使用DBLINK,那只有复制数据库,但同样会出现上面的问题.
    因为你的需求就是访问异地数据库,稳定性自然差
      

  6.   

    用databaselink不太好,这个连接要通过网络走,实在不可取!