首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有SYSADMIN角色的Server

没有SYSADMIN角色的Server
EN

Stack Overflow用户
提问于 2020-12-29 18:52:43
回答 1查看 1.1K关注 0票数 1

我们广泛使用OPENROWSET函数将.CSV和Excel文件导入到Server 2012环境中,使用MSDASQL或ACE:

代码语言:javascript
复制
SELECT * 
FROM OPENROWSET ('MSDASQL',
                 'DRIVER={MICROSOFT access TEXT DRIVER (*.TXT, *.CSV)};', 
                 'SELECT * FROM E:\INCOMING\REPORT_EXTRACT.CSV') 

或使用ACE:

代码语言:javascript
复制
SELECT * FROM     OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','TEXT;DATABASE=E:\INCOMING\;HDR=YES;', 'SELECT     * FROM [REPORT_EXTRACT.CSV]');

我们正在经历经典的错误信息:

Msg 7415,16级,状态1,第1行

对OLE DB提供程序'MSDASQL‘的临时访问已被拒绝。必须通过链接服务器访问此提供程序。

唯一能做到这一点的方法就是授予上述用户SYSADMIN角色--显然不太理想。

文件的位置位于服务器本身,访问该文件的用户确实拥有访问该文件文件夹的必要权限。Server服务在本地系统帐户下运行,具有与桌面交互的权限。

我们尝试了以下解决办法/修复,但没有结果:

1执行以下代码:

代码语言:javascript
复制
EXEC master . dbo. sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’AllowInProcess’ , 1
GO

EXEC master . dbo. sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’DynamicParameters’ , 1
GO

*2 DisAllowAdHocAccess注册表修复程序:

这是目前的状况:

3向上述用户添加“管理批量操作”权限

我们的过程中有几十个表达式和文件使用OPENROWSET,因此批量插入、构建SSIS包、利用Excel文件作为链接服务器是不可行的选择。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-31 03:07:56

哇-经过多年的故障排除,我终于明白了这是什么!

控制Ad访问允许的注册表条目值依赖于DisallowAdHocAccess在这个确切的句子中的情况。

在我们的例子中,AdHoc中的"A“没有大写:

为了解决这个问题,我:

described

  • Re-enabled
  1. 将注册表值删除为Disallow AdHoc Access选项(重新创建注册表值)

  1. 手动将注册表DisallowAdHocAccess值设置为"0"

问题解决了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65497253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档