【求解决办法】OLE DB 提供程序 'SQLOLEDB' 不包含表,怎么设置访问权限
我在SQL查询分析器里:
select * from openrowset( 'sqloledb ', '192.168.0.20 ';
'sa '; '123456 ',WESTDATA.dbo.CUSTOMER)
出现以下信息:
服务器: 消息 7314,级别 16,状态 1,行 1
OLE DB 提供程序 'sqloledb ' 不包含表 ' "WESTDATA ". "dbo ". "CUSTOMER " '。该表可能不存在,或当前用户没有使用该表的权限。
OLE DB 错误跟踪[Non-interface error: OLE DB provider does not contain the table: ProviderName= 'sqloledb ', TableName= ' "WESTDATA ". "dbo ". "CUSTOMER " ']。
同样代码,我访问另一个数据库:
select * from openrowset( 'sqloledb ', '192.168.0.20 ';
'sa '; '123456 ',MKDB.dbo.USER)
正常列出数据
因此,是SQLOLEDB的权限问题,请问该如何解决呢?? 谢谢了
------解决方案--------------------那就去数据库里设置你登录用的帐号的权限啊
------解决方案--------------------没有SA不能访问的表
只会是表不存在
------解决方案--------------------如楼上所说.查看表是否存在....
------解决方案--------------------查看表是否存在
------解决方案--------------------很可能WESTDATA.dbo.CUSTOMER表不是sa创建的,你在表前加上创建者的名字看看,我以前也遇到过类似的问题。
------解决方案--------------------去查一下该数据库.安全性下面
的选项
------解决方案--------------------WESTDATA.dbo.CUSTOMER 可能这个表不存在!
试一下
exec sp_help 'WESTDATA.dbo.CUSTOMER '
------解决方案--------------------关注~~~~
------解决方案--------------------关注
------解决方案--------------------可能原因:
1、不存在WESTDATA.dbo.CUSTOMER这个表,或表名字写错,或数据库名字写错
2、表的所有者不是dbo
如果没有以上问题,到 '192.168.0.20 '本机执行以下语句试试:
select * from WESTDATA.dbo.CUSTOMER
------解决方案--------------------建议楼主把楼上提出的可能发生错误的原因测试一下,然后把测试结果贴出来,这样可以继续解决问题