【问题标题】:locating a flat file from SQL server 2005从 SQL Server 2005 中查找平面文件
【发布时间】:2009-10-07 09:03:07
【问题描述】:

我在 Visual Studio 2005 中构建了一个 SSIS 作业,它访问一个平面文件并更新 SQL Server 2005 中的一个表。这非常有效。然后,我使用保护级别属性中的服务器存储选项将副本存储在 SQL Server 上。当我尝试运行它时,它找不到平面文件。平面文件位于服务器上,我使用 IP 地址访问它。我注意到,如果我删除到此服务器的映射并从 Visual Studio 运行作业,它也找不到它。我如何从 SQL Server 2005 访问该文件?我打算安排这个作业在 SQL Server 上自动运行。 非常感谢您提供的任何帮助。 罗尼卡林

【问题讨论】:

    标签: sql-server flat-file


    【解决方案1】:

    为了避免出现更复杂的问题,请检查作业在哪个帐户下运行(例如,具有过程和凭据)或它是否使用基本 SQL 代理帐户,然后检查该帐户是否具有访问权限到您尝试导入的文件夹 \ 文件。 让我们不止一次地抓到我们了。

    已编辑以在主要答案中包含附加信息。

    当 SQL 代理运行作业时,它不使用您的帐户,即使您启动了作业执行 - 它使用 SQL 代理帐户。 SQl 代理设置的帐户(默认情况下)或您使用代理/凭据指定的命名帐户。您可能能够访问该文件夹,但您需要检查 SQL 代理在哪个帐户下运行以及它是否可以访问它。

    要找出作业在默认情况下运行的帐户,您可以通过以下方式访问它 开始 -> 程序文件 -> SQL Server -> 配置工具 -> SQL Server 配置管理器。在 2005 服务 SQL Server 代理中将列出,右键单击属性,第一个选项卡显示代理正在哪个帐户下运行。

    但是,如果您需要在特定帐户下运行作业,我建议您创建代理/凭据,而不是更改代理帐户 - 因为这是所有其他作业正在使用的帐户。

    凭据和代理是 SQL 中的不同对象,凭据存储在安全文件夹/凭据下 - 这是您创建凭据并放置 AD 用户名/密码的位置。 然后,代理会要求您从已存储在系统上的凭据列表中选择一个凭据,而不是此时您的域\用户。

    【讨论】:

    • 感谢您的帮助安德鲁。我不确定您所说的帐户是什么意思。当我连接到 SQL Server 时,我使用 Windows 身份验证,并且我的 Windows 帐户可以访问此文件夹。谢谢罗尼
    • 安德鲁,我如何确定它在哪个帐户下运行?我已经检查了 SQL Server 代理的属性,但在那里看不到任何东西。
    • Andrew 非常感谢您在这方面的帮助。我作为一名开发人员已经很多年了,但我对 SQL Server 还比较陌生,所以我有点挣扎。我已经决定前进的方向是为这项工作创建一个代理帐户。基本上我想要的只是让作业以与我的 Windows 帐户相同的权限运行,以便它可以访问所需的文件夹。当我创建代理帐户时,它要求我输入凭据名称,然后我输入我的域\登录名,但它不喜欢告诉我它不存在。任何建议。
    • 嗨,安德鲁,我使用我的登录名和密码在凭据下创建了一个条目。然后我在 SSIS 包执行下创建了一个代理,它允许我选择刚刚创建的凭据。我不知道如何告诉作业使用此代理,但我注意到作业步骤(这是一个 1 步作业),在一般属性中有一个叫做“运行方式”的东西,它允许选择 SQL 代理服务帐户或我的新代理。我选择了我的代理,但是当我运行它时它会失败并显示有用的消息“作业失败”???
    • 您可以在正确的位置指定您的代理,您可以按步骤指定它。您现在需要检查 SQL 日志或将日志提供程序添加到您的包中,以便它告诉您失败的原因。您至少现在可以在您的 AD 帐户下执行它,这是以前没有的。
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2013-08-04
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    相关资源
    最近更新 更多