拒绝对 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 的特殊访问,请高手解答,急!!!!

chdeliang 2005-08-02 11:36:20
有dbf文件,sql服务器上已建立odbc连接
以OPENROWSET访问需要什么权限?
如果以sa用户可以访问,
以普通用户(拥有对master库的datareader datewriter权限)出现错误:
服务器: 消息 7415,级别 16,状态 1,行 1
已拒绝对 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 的特殊访问' 的特殊访问。必须通过链接服务器来访问此提供程序。

该如何办?
...全文
591 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zxmoon 2005-08-12
现在有没有搞定这个问题啊?如果没有请参看以下方法:
在服务器上建立一个Linked server,指定Provider name 使用“Microsoft Jet4.0 OLE DB Provider”,在Provider Options中选中了“Disallow adhoc accesses”选项。在Security中选择“Be made using this security context”,输入SA身份,保存设置。
在注册表中查看并设置DisallowAdHocAccess值为0。具体方法参看http://support.microsoft.com/default.aspx?scid=kb;en-us;327489
  • 打赏
  • 举报
回复
chdeliang 2005-08-04
在同事的一台pc机上做服务器,另一台作客户端访问,设置用户能拥有对master库的public权限,就可以执行上述语句,但在公司服务器上设置相同的权限,客户端访问就出现:
服务器: 消息 7415,级别 16,状态 1,行 1
已拒绝对 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 的特殊访问' 的特殊访问。必须通过链接服务器来访问此提供程序。
该如何办?
  • 打赏
  • 举报
回复
zxmoon 2005-08-02
我也碰到这类问题,用SA身份则没有错误,一切正常。但用其它身份则出现你说的情况。不知如何解决,研究并关注中……
  • 打赏
  • 举报
回复
Hs_Boy 2005-08-02
declare @sql_str varchar(5000),@dbf_path varchar(100),@dbf_name varchar(30),@broker_account varchar(30),@hs_table varchar(30)
set @dbf_path = 'c:\Fc_dbf\'
set @dbf_name = 'tbcustomer_new.dbf'
set @hs_table = 'crmcurrent.dbo.tbcustomer_new'
set @broker_account = ''
select @sql_str = /*'insert into '+rtrim(@hs_table)+char(13)+*/
'select * from '+char(13)+
'openrowset(''MSDASQL'',''Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB='+rtrim(@dbf_path)+''',''select * from ['+rtrim(@dbf_name)+']'') where fcid ='+rtrim(@broker_account)
exec(@sql_str)

解决问题
  • 打赏
  • 举报
回复
相关推荐
发帖
应用实例

2.7w+

社区成员

MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
帖子事件
创建了帖子
2005-08-02 11:36
社区公告
暂无公告