在sql里面用sysadmin权限插入excel时可以完成插入,但是换成别的权限就不可以插入了,报下面的错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql里面用sysadmin权限插入excel时可以完成插入,但是换成别的权限就不可以插入了,报下面的错相关的知识,希望对你有一定的参考价值。
:无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。“
如何设置权限,excel的2003版本和2007版本都试过了不可以,完整的报错界面如下
求大神指导解决方案
Provider=SQLOLEDB.1;.... 参考技术A 试试赋予bulkadmin权限呢追问
不行的,试过了
SQL Server 2017 开放式设置与 Excel 2016
【中文标题】SQL Server 2017 开放式设置与 Excel 2016【英文标题】:SQL Server 2017 OPENROWSET with Excel 2016 【发布时间】:2020-01-17 23:07:35 【问题描述】:我对 SQL Server 和OPENROWSET
权限感到完全困惑。
我们的团队有一个广告组。该组包含在 DEV 服务器的 Windows 管理员本地组中。此同一个 AD 组对 SQL Server 2017 的本地安装具有 SysAdmin 权限。
正在尝试运行命令:
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Work\test.xls;HDR=YES',['sheet1$'])
对我有用,但对我的任何队友都不适用。
如果有关于使用 OPENROWSET
命令的安全要求的最终文档 - 我还没有找到它(请 - 不要让我访问 docs.microsoft.com - 该文档不是以任何方式编写的我理解)。
我发现了其他问题,包括如果我更改 Excel 工作簿中工作表的名称 - 命令失败(是的 - 我在进行更改后关闭了工作表)。
最后 - 关于OPENROWSET
使用的一些反馈 - 一般是个好主意吗?一个坏主意?几乎是中立的,但要为这些问题做好准备?
我希望这个问题足够具体,可以回答 - 我可能已经花了 20 多个小时试图弄清楚如何理解它是如何工作的,以便我可以让它工作并始终如一地使用它。
谢谢!
【问题讨论】:
【参考方案1】:所以诚实地解决 SQL Server 的安全/权限和错误可能是我工作中最令人沮丧的方面。
关于您的困境的前几个问题和想法。
您是否真的要让您的团队连接到您的数据库 系统管理员权限?我不会那样做,句号。 会刷新数据吗?如果是,我建议你摄取这些数据 进入一个带有进程的sql表,可能是python,ssis,dts包, powershell,随心所欲。如果数据在那个 excel 文件中始终是静态的,我建议也许让它像一个链接服务器一样(希望)减少权限问题?此外,根据我的记忆,这样查询起来更容易。
无论如何,这篇文章(非 msdn 链接)可能会有所帮助?我以前做过一次这样的事情,困难的时间稍微少了一点,但后来又涉及到向 sql server 添加驱动程序(通常)。但是,那么我不必允许多个用户 sysadmin - 我认为任何事情都比这更好。
https://www.sqlshack.com/query-excel-data-using-sql-server-linked-servers/
有时问题不在于运行查询的用户,而是 SQL Server 使用它运行的帐户来获取文件的权限。本文也讨论了这方面。我不确定这是您的问题,正如您所说它适用于我,但不适用于您,但至少可以阅读文章的那部分?
【讨论】:
感谢您的回复 - 您链接的文章为我提供了整个 OLEDB 子系统的不同视图。不幸的是 - 没有关于我的情况的详细信息,但确实提供了“分布式查询”的官方术语。回答您的问题 - 用户只是 TEST 中的系统管理员,我们在 PROD 中有更多的安全控制。其次 - 数据是动态的。我们实际上是在读取一个文件名(每次都不同),然后每次使用该文件名打开一个包含不同数据的 Excel 表格。非常动态 - 所以链接服务器将无法工作。我们考虑过SSIS SSIS 将是解决这个问题的方法。最简单的方法是使用 Cozyroc 插件,它可以相当容易地处理动态文件和列。我定制了一个,它在没有 Cozyroc 的情况下在数据库表中保存文件和字段信息,但它非常复杂并且包含 C# 脚本。我发现 python 非常简单,你也许可以利用它。请记住,批量导入是最快的摄取方式,这是 SSIS 主要使用的方式(快速加载)。祝你好运! 非常感谢您的建议 - 这不是我想听到的,但是...我仍然感谢您的帮助!以上是关于在sql里面用sysadmin权限插入excel时可以完成插入,但是换成别的权限就不可以插入了,报下面的错的主要内容,如果未能解决你的问题,请参考以下文章
您必须是 sysadmin 固定服务器角色的成员或具有 ALTER TRACE 权限,才能对 SQL Server 运行跟踪
SQL Server 2017 开放式设置与 Excel 2016
运行SQL Server Profiler的时候,提示“您必须是 sysadmin 固定服务器角色的成员或具有 ALTER TRACE 权限,才能对 SQL Server 运行跟踪。”
解决 SQL Server 所有帐号无 sysadmin 权限,且未启用 SQL Server 身份验证,sa 帐号也未启用的问题