比如 A机器上有个数据库 databaseA, 有用户userA
另一机器B上有个数据库 databaseB, 有用户userB我想要用户UserB在数据库databaseB 中能查询userA的表,就像查询自己的表一样,不要导入导出。 可能吗?如果能,具体怎么做呢?  

解决方案 »

  1.   

    可以的...
    建立DBLINK很容易实现,就像访问自已数据库中的表.
    介绍如何创建DATABASE LINK  
    create table vendor as select * from gyda001@qianji
    这样表明后面有一个@符号的语句,这个是DATABASE LINKS,它使得你在一个数据库中能使用另一个数据库中的数据。
    首先,假如你的要使用DBLINK的数据库服务器的tnsnames.ora文件里已经包含了target_db这一条目,包括服务器地址,端口,服务名等,且能通过sqlplus user_name@target_db连接成功。然后运行下列语句,即可创建一个名为dblink_name的DBLINK。CREATE PUBLIC DATABASE LINK dblink_name
    CONNECT TO user_name
    IDENTIFIED BY password USING 'target_db'; 
    然后你就可以通过table@dblink_name来访问target_db上用户user_name的table表。如果碰到无法处理服务器名:
    碰到这个问题,大部分是由于由于初始化文件init.ora中的参数   
      global_names造成的。   
      把global_names=true   改成global_names=false;   
      你可以如下操作:   
      SQL>SELECT   NAME,VALUE   FROM   V$PARAMETER   WHERE   NAME   LIKE   'global_names';   
      如果看到gloabal_names=true,则:   
      SQL〉ALTER   SYSTEM   SET   global_names=FALSE;   
     
    详见:http://www.jobcorps.com.cn/blog/portal.asp?blogid=132
      

  2.   

    跨服务器?可以用dblink。相关资料好多,自己查查就知道了。
      

  3.   

    建DBLINK,然后
    SELECT * FROM DBLINK.USER.TABLE;