我要访问一个异地的数据库,用用户名username和密码password能在企业管理器里注册,并能打开表table1,但是在查询分析器里用
select top 1 * from openrowset('sqloledb','异地数据库ip ';'username';'password',数据库名.dbo.表名table1) 就会有错误的提示
服务器: 消息 17,级别 16,状态 1,行 1
SQL Server 不存在或拒绝访问。
请问各位大虾,是什么问题啊?用户username只有一些表的读取权限。

解决方案 »

  1.   

    select * from OPENROWSET('SQLOLEDB',
    'SERVER=;uid=sa;pwd=;Database=数据库','SET FMTONLY OFF;select * from 表') as a
      

  2.   

    这是因为查询分析器里用的是sa,你可以在查询语句之前做一个临时的链接比如:
    EXEC XP_CMDSHELL 'NET USE \\10.188.106.186\承重软件\db  "" /USER:10.188.106.186\ADMINISTRATOR' 
    select * into tempdb..scaledata  from OPENROWSET('Microsoft.Jet.OLEDB.4.0','\\10.188.106.186\承重软件\db\wuyidb.mdb';'admin';'', scaledata)
    这样就可以了
      

  3.   

    把SQL访问的身份验证更改为:SQL Server 和 Windows
    就可以了.