从网上找了一篇有关这方面的资料,网址是:http://hi.baidu.com/chentao/blog/item/001e4fc2c1056434e5dd3bd3.html
但还是提示用户没有在当前数据库中存在,不知道该如何解决

解决方案 »

  1.   

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称  
    'ai_mssql',             
    --产品名称               
    'ms',     
    --OLE DB 字符 
    'SQLOLEDB',  
    --数据源 
    '218.204.111.111,3342' 
    GO 
    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    'ai_mssql', 
    'false', 
    NULL, 
    --远程服务器的登陆用户名 
    'zhangzhe', 
    --远程服务器的登陆密码 
    'fish2231' 
    go 
    --查询数据 
    select * from ai_mssql.pubs.dbo.jobs 
    go 
      

  2.   

    我的sql server是2000+sp4的,OS是win2003
    操作的时候是完全安照示例中的操作来的,
      

  3.   

    在被的数据库中使用
    select * from pubs.dbo.jobs
      

  4.   

    数据库A的用户为test1,test2,数据库角色成员是db_owner+public
    数据库B的用户为test1,数据库角色成员是db_owner+public
    以test2登录数据库A,创建视图create view vTable1
    as 
    select * from B.test1.table1
    提示错误:
    服务器用户 'test2' 不是数据库 'B' 中的有效用户。
    A与B都开启了跨数据库所有权链接的功能
      

  5.   

    “跨数据库所有权链接”并不是像你这样用的。它的意思是说:
    在进行跨服务器访问对象时,如果开启了“跨数据库所有权链”,对于同一个所有者的对象,不在被调用对象的数据库中检查调用者的权限!(只在调用对象的数据库中检查调用者对该对象的权限)下面一段是COPY联机帮助的:
    ================================================================
    例如,如果在数据库 A 和数据库 B 之间启用了跨数据库所有权链接,则任一数据库的 db_owner 固定数据库角色的成员都可以访问另一数据库。过程很简单:Diane(数据库 A 中 db_owner 角色的成员)在数据库 A 中创建了用户 Stuart。Stuart 已经作为用户存在于数据库 B 中。然后 Diane 在数据库 A 中创建一个对象(由 Stuart 所拥有),该对象调用数据库 B 中 Stuart 所拥有的任何对象。因为调用对象和被调用对象的所有者相同,所以当 Diane 通过她创建的对象访问数据库 B 中的对象时,不会检查她对该对象的权限。
      

  6.   

    谢谢lzhs(快乐至上) ,结帖了