我有一个 SSIS 包,可以将数据从 Sybase 数据库迁移到 SQL Server。已通过 ODBC 连接建立到源数据库的连接。
如果我直接在我的机器上运行包,它会成功运行,但是如果我想通过我在本地机器(目标数据库所在的位置)上创建的 SQL Server 作业运行它,我会收到登录失败错误:
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Login failed for user 'xxx\user1'.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Cannot open database "MySybaseDatabase" requested by the login.
我知道该作业实际上是作为“SQL Server 代理服务帐户”运行的,xxx\user1
它与在 ODBC 连接中设置访问源数据库的用户不同,但不知道为什么 odbc 连接登录不采取优先和使用而不是代理服务帐户?
我在不同的网站上阅读了一些帖子,他们在谈论设置代理等,但不知道这是否与我的问题非常相关。
已通过 ODBC 建立与源数据库的连接,但由于该步骤失败,我向其中添加了 userId 和密码,以强制 SQL 使用我想要的 userId 而不是 SQL Sever 代理用户,但这没有帮助。 您知道我们如何解决此登录问题吗?
谢谢你。
我在使用 SSIS 包从 Excel 文件中导入数据时遇到了类似的问题。我找到了这个教程并解决了这个问题。
编辑:重要步骤:
1 - 将 SSIS 包保存到文件系统时,将“包保护级别”选择为“不保存敏感数据”。
然后,按照以下步骤操作:
1 - 在 Visual Studio 中打开 SSIS 包
2 - 选择SSIS ->包配置
3 - 在包配置管理器上单击添加
4 - 在将打开的窗口上单击下一步
5 - 将配置类型设置为XML 配置文件
6 - 在配置文件名上单击Browse,选择要存储配置文件的文件夹,选择该文件的名称,然后点击Save
7 - 完成后,单击Next
8 - 选择正确的连接管理器,然后单击+号将其展开,然后展开Properties并选中与Password对应的复选框。然后单击下一步。
9 - 为您的配置文件选择一个名称,然后单击完成。
以下 XML 配置文件将在您之前指定的位置创建(这里我使用教程中的代码作为示例):
您在这里唯一需要做的就是编辑 XML 文件并将其更改
<ConfiguredValue></ConfiguredValue>
为:
<ConfiguredValue>YourPasswordGoesHere</ConfiguredValue>
然后保存包。
创建 SQL 作业时,不要忘记在选项卡Configurations中将配置文件添加到作业中。