加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

OpenRowSet权限问题解决

发布时间:2020-12-12 15:31:23 所属栏目:MsSql教程 来源:网络整理
导读:?在使用OpenRowSet、OpenDataSource的时候,经常会出现 消息 7415,级别 16,状态 1,第 1 行 已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。 这样子的错误 网上搜了很多,大多是说用sa登录就可以了

?在使用OpenRowSet、OpenDataSource的时候,经常会出现

消息 7415,级别 16,状态 1,第 1 行
已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。

这样子的错误

网上搜了很多,大多是说用sa登录就可以了,但是,实际应用过程中不太可能给sa的用户使用,这里面就涉及到了需要给登录用户分配什么样的权限才可以的问题了。

?

其实很简单
登录用户必须有sysadmin的权限(即属于服务器角色:sysadmin),就可以使用OpenRowSet之类了。

?

?

?

另,写完这段文字后发现有个博文已经给出的答案,发个转载链接吧:

http://inghot.cn/article.asp?id=511

?

原文如下:

在用程序执行SQL里的导入其它格式库的存储过程时(如导入DBF,EXCEL,ACCESS到SQL?SERVER库的存储过程),会提示:
错误类型:
Microsoft?OLE?DB?Provider?for?SQL?Server?(0x80040E14)
已拒绝对?OLE?DB?提供程序?'Microsoft.Jet.OLEDB.4.0'?的特殊访问。必须通过链接服务器来访问此提供程序。

而直接在 查询分析器 里执行就不会报错。

如下面语句格式的存储过程

程序代码

程序代码
'insert?into?DBF_Cost(OP_TIME,MSISDN,CALL_FEE,P2P_FEE,MONTH_FEE,GPRS_FEE,MNET_FEE,TOTAL_FEE)   select?OP_TIME,TOTAL_FEE?from?OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data?Source="'+@path+'";User?ID=;Password=;Extended?properties=dBase?5.0'')...'+@tname



出现该问题的原因是当前登录SQL的帐户权限不够,需增加权限。

打开SQL?SERVER,点开安全性,点击登录,如图:


在右边会出现所有的登录帐户,选择你当前的登录帐户,右边属性,如图:


在出现的 SQL?SERVER登录属性 中选择?服务器角色?,然后勾选?System?Administrators?项,确定,如图:

再执行存储过程就不会了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读