尽管 SA 帐户有权访问文件夹,但 SQL Server 部署的 SSIS 包不会打开文件

Posted

技术标签:

【中文标题】尽管 SA 帐户有权访问文件夹,但 SQL Server 部署的 SSIS 包不会打开文件【英文标题】:SQL Server Deployed SSIS package won't open files despite SA account having access to folder 【发布时间】:2021-12-28 16:49:35 【问题描述】:

我之前发布了一个类似的问题,但现在我回到了需要处理这个问题的地步,经过一些调整后,我设法摆脱了所有错误,除了一个警告基本上告诉我提供给包的路径在目录中找不到任何文件(这是错误的)。这几乎让我想相信这又是一个权限问题。当我在本地运行包时,一切正常。这是警告: 当我右键单击目录下的 SSIS 包并直接尝试执行作业时,会出现相同的消息。 我确保调用者对相关文件夹具有完全权限

SQL Server 代理作业像这样调用作业

只需一个步骤即可执行目录中的 SSIS 包:

执行历史全部成功,SQL 代理作业历史全部为绿色 我得到的建议之一是打开 SQL Server 配置管理器,但我似乎无权访问它。我对这整个过程很陌生,所以我不确定身份验证是否与它或 sa 帐户的权限有关。 注意:我正在远程开发服务器上进行此操作,而不是直接在我的电脑上。 任何帮助将不胜感激。

【问题讨论】:

权限需要应用于 SQL Server 代理服务帐户或其每个服务的 SID。 @DavidBrowne-Microsoft 好吧,我不知道(还)如何到达那里,一些链接会有很大帮助,但我会对此进行一些研究。谢谢! 【参考方案1】:

由于您将包作为代理服务帐户运行:

需要将权限应用于 SQL Server 代理服务帐户或其每个服务的 SID。

您可以像这样使用 PowerShell 查看服务帐户:

PS C:\Users\david> (Get-WmiObject win32_service | where Name -eq "SQLSERVERAGENT").StartName
NT Service\SQLSERVERAGENT

【讨论】:

它告诉我“NT”这个词不能被识别 命令是(Get-WmiObject win32_service | where Name -eq "SQLSERVERAGENT").StartName "NT Service\SQLSERVERAGENT" 是我工作站上的输出。 好吧,这就是我的想法,但在我的电脑上,输出什么都没有 如果您安装了命名实例,该服务将具有不同的名称。例如(Get-WmiObject win32_service | where Name -eq 'SQLAgent$SQL2017').StartName【参考方案2】:

原来数据库实例位于我什至没有访问权限的完全不同的服务器上。该服务器显然没有在 SSIS 包中指定路径,所以我要做的是在正确的服务器中为文件创建一个文件夹,在那里重新路由我的文件,并在获得对服务器的访问权限后更改 SSIS 包路径数据库实例所在的位置。我对这一切都是新手,这绝对令人沮丧,特别是因为我们的团队很小而且我是新手,所以我不能一直问别人这个问题。希望这会为人们节省很多时间。

【讨论】:

我不能一直问别人这个问题 是的,你可以而且你应该这样做。新加入团队的人应该提出问题——他们还能学到什么?

以上是关于尽管 SA 帐户有权访问文件夹,但 SQL Server 部署的 SSIS 包不会打开文件的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法获取 Firebase 项目项目名称。请确保该项目存在并且您的帐户有权访问它

忘记SQL SERVER帐户sa的密码

用户如何证明特定帐户有权访问 BigQuery? (AEAD 加密和授权视图)

如何正确查看SQL Server超级用户权限

连接sqlserver2000数据库问题

防止git pull更改文件权限和所有权