Sky*_*Sky 6 ssis sql-server-2008-r2 jobs
我有一个将数据从 Sybase 数据库迁移到 SQL Server 的 SSIS 包。已通过 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.
Run Code Online (Sandbox Code Playgroud)
我知道该作业实际上是作为“SQL Server 代理服务帐户”运行的xxx\user1
,它不同于在 ODBC 连接中设置的用户访问源数据库,但不知道为什么 odbc 连接登录没有优先并使用而不是代理服务帐户?
我在不同的网站上阅读了一些帖子,他们在谈论设置代理等,但不知道它是否与我的问题非常相关。
到源数据库的连接已通过 ODBC 建立,但由于该步骤失败,我向其中添加了 userId 和密码以强制 SQL 使用我想要的 userId 而不是 SQL Sever gant 用户,但它没有帮助。
你知道我们如何解决这个登录问题吗?
谢谢你。
我在使用 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 version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="Domain\UserName" GeneratedFromPackageName="Package" GeneratedFromPackageID="{77FB98FB-E1AF-48D9-8A43-9FD6B1790837}" GeneratedDate="22-12-2009 16:12:59"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[runeet2k8.sa].Properties[Password]" ValueType="String">
<ConfiguredValue></ConfiguredValue>
</Configuration>
</DTSConfiguration>
Run Code Online (Sandbox Code Playgroud)
您在这里唯一要做的就是编辑 XML 文件并将其更改
<ConfiguredValue></ConfiguredValue>
为:
<ConfiguredValue>YourPasswordGoesHere</ConfiguredValue>
然后保存包。
创建 SQL 作业时,不要忘记在选项卡Configurations中将配置文件添加到作业中。