【问题标题】:SSIS Package runs from SSIS but not from JobSSIS 包从 SSIS 运行,但不是从 Job 运行
【发布时间】:2013-07-01 06:46:58
【问题描述】:

我已经构建了一个每天导入数据的 SSIS 包。

我已经在 BIDS 中对其进行了测试并且它运行良好,我已经将它部署到 SSIS 服务器并且它运行良好,但是当我安排它作为作业运行时它会出错。我收到以下错误。我已将 srvSQLagent 帐户添加到正确的组,以访问导致问题的文件夹。我在这里错过了什么愚蠢的东西吗?

================================================ =====================

日期 03/07/2013 14:55:06 记录作业历史(导入 SN2 数据)

步骤 ID 1 服务器 STX-RPT 作业名称导入 SN2 数据 步骤名称 运行导入包 持续时间 00:00:09 Sql 严重性 0 Sql 消息 ID 0 操作员已通过电子邮件发送
运营商网络发送
操作员分页
重试次数 0

消息 以用户身份执行:INT\srvSQLagent。 Microsoft (R) SQL Server Execute Package Utility Version 10.50.1600.1 for 32-bit 版权所有 (C) Microsoft Corporation 2010。保留所有权利。
开始时间:14:55:06
错误:2013-07-03 14:55:15.69
代码:0xC001401E
来源:Servicenet 数据导入连接管理器“已下载”
说明:连接中指定的文件名“\\FILE\Groups\ISG\England\Servicenet Data\Downloaded”无效。结束错误
错误:2013-07-03 14:55:15.69
代码:0xC0202070
来源:Servicenet 数据导入连接管理器“已下载”
说明:文件名属性无效。文件名是设备或包含无效字符。结束错误
错误:2013-07-03 14:55:15.69
代码:0xC0029163
来源:文件系统任务 文件系统任务
说明:连接“Downloaded”表示的文件或目录“\\FILE\Groups\ISG\England\Servicenet Data\Downloaded”不存在。结束错误
DTExec:包执行返回 DTSER_FAILURE (1)。
开始时间:14:55:06
完成时间:14:55:15
已用时间:9 秒。
包执行失败。
步骤失败。

【问题讨论】:

  • 检查权限。当您从 BIDS 或 SSIS 运行它时,它会在您的凭据下运行。当您作为作业运行时,它使用 SQLAgent 用户帐户的凭据 (INT\srvSQLagent)。看起来该用户看不到文件位置。
  • 为什么该文件位置不是绝对路径? SQL 作业的工作目录不能保证 AFAIK。
  • 我已经以 srvSQLagent 身份登录并且可以访问所需的文件和文件夹。它是一个 UNC,因为它是一个网络共享。映射的驱动器是用户特定的。

标签: sql-server ssis


【解决方案1】:

问题是由于使用文件系统任务清除文件夹中的所有文件而引起的。

我从来没有找到问题的根源,我只是找到了另一种删除所需文件的方法。

【讨论】:

    【解决方案2】:

    肯定是文件夹权限问题。

    请给每个人适当的权利。

    阿尔佩什·多里 软件专业

    【讨论】:

      【解决方案3】:

      我想下一个解决方案会帮助你:

      假设我们需要写 \\serv\share\dir1..\dirN\targetDir\somefile.txt 通过 SQL 代理作业和非管理员代理帐户 MyDomain\TestAccount 使用 SSIS

      1) MyDomain\TestAccount 需要读/写权限才能共享 \\serv\share

      2) MyDomain\TestAccount 至少需要所有文件夹的 FILE_READ_DATA 权限(sharedir1、..dirN

      3) MyDomain\TestAccount 需要文件夹 targetDir

      的 CHANGE 权限 + FILE_DELETE_CHILD 权限

      (cacls 应显示此权限如下:

      DELETE
      READ_CONTROL
      SYNCHRONIZE
      FILE_GENERIC_READ
      FILE_GENERIC_WRITE
      FILE_GENERIC_EXECUTE
      FILE_READ_DATA
      FILE_WRITE_DATA
      FILE_APPEND_DATA
      FILE_READ_EA
      FILE_WRITE_EA
      FILE_EXECUTE
      FILE_DELETE_CHILD
      FILE_READ_ATTRIBUTES
      FILE_WRITE_ATTRIBUTES
      

      )

      当然,targetDir 的全部权限就足够了。

      如果 targetDir 没有 FILE_DELETE_CHILD 权限,那么我们会在 SSIS 中看到平面文件连接的这种奇怪行为。用户 MyDomain\TestAccount 可以使用标准 Windows 工具对文件 somefile.txt 执行任何操作(读取、写入、删除)。但 SSIS 作业无法覆盖此文件并失败。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多