SQL 服务器中的 SSIS:如何让它存储密码
SSIS in SQL Server: How to get it to store password
我是一名 Oracle 人员,突然 SQL 服务器和 SSIS 掉在了他的腿上,所以我可能没有以正确的方式使用术语,但这里是:
有一个 SSIS 包可以将 Oracle 数据库中的数据提取到我们的 SQL Server 2008 R2 仓库中。如果我在 SSIS Visual Studio 2008 中打开此包,系统会提示我输入密码:
The sensitive data in the package 'MyRefresh.dtsx' is encrypted with a password.
对于包本身。我输入密码。我运行包了。效果很好。
之前的那个人每天凌晨 1 点将这个包加载到 SQL 服务器,工作到 运行,在那里也工作得很好。
最近,数据库发生了一些变化。当然,包裹停止工作了。我能够修复它,而且,如果 运行 通过 SSIS Visual Studio 2008,它 运行 很好。但是,当我将它加载到 SQL 服务器时,并且作业 运行s,它失败了:
0xC001405F Failed to decrypt an encrypted XML node because the password was not specified or not correct.
Where/how给我指定密码这样才行运行?
您可以将 /de
开关与 dtexec
实用程序一起用于您的密码,如下所示:
dtexec /f <filename> /de <password>
如果有机会我建议您不再使用EncryptAllWithPassword保护级别。在此处阅读有关包加密级别的更多信息:
简而言之,包加密的思想是阻止人们打开包XML提取明文密码。但通常这是以不安全的方式实现的,这违背了目的。
我建议您始终使用 windows 身份验证:
- 确保您的 Oracle 服务器支持外部身份验证
- 使用 SQL 代理 windows 服务帐户
创建 Oracle 的外部标识登录
- 在您的 Oracle 连接管理器中,使用外部身份验证(使用用户
/
登录且无密码)
- 如果您有任何 SQL 服务器连接管理器,您需要执行相同的操作(在 SQL 服务器中,这称为 windows 身份验证)
- 最后确保所有开发人员都在 SQL 服务器中设置了 windows 身份验证,在 Oracle 中设置了外部身份验证,以便他们可以 运行 BIDS
中的程序包
现在您不再需要加密您的包裹(您可以使用 DontSaveSensitive)。所有操作的权限都针对 SQL 代理服务帐户。
您不再需要记住包密码或 Orace 登录密码。
另外,例如,如果您需要轮换 Oracle 登录名的密码,最初您必须在包中的 Oracle 和 中更改此密码。但是通过使用 windows 身份验证,这不再是必需的。
如果你有兴趣,我可以给你更多信息。
回答晚了,但可能对其他 users/thread 访客有帮助
简而言之,要将包加载到 SQL 服务器,必须使用指定的新凭据将其导出,然后导入回指定的文件夹。
这是我找到的关于设置 SSIS package encryption manually in SSMS 的文章,它提供了有关如何 Import/Export 加密包的快速教程。
请注意,保护级别选项在一种情况下涉及敏感数据,在另一种情况下涉及特定包中包含的所有数据。被认为是敏感的数据在 Integration Services 中默认设置:以前标记为精细、不可更改的 XML 标签的变量,由 SSIS 服务控制,以及密码,如果“全部加密”,则可以被认为是敏感的选择了带密码的数据。
包保护级别:
- 不保存敏感数据:如果存在敏感数据,新包导出后将不包含,保持不可用;
- 使用用户密钥加密敏感数据:敏感数据将使用当前用户凭据加密,包仍然可以在本地服务器上使用。哪些数据将被视为敏感数据,取决于包的 creator/owner;
- 使用密码加密敏感数据:在这个级别,必须提供密码——如果用户只想将敏感数据保密,这种加密是可取的。
- 使用用户密钥加密所有数据:与敏感数据加密一样,可以在本地服务器上使用,但它会考虑包内的所有数据;
- 用密码加密所有数据:此级别加密包内的所有数据,需要密码,并提供 100% 的隐私。
希望此信息对您有所帮助。
我是一名 Oracle 人员,突然 SQL 服务器和 SSIS 掉在了他的腿上,所以我可能没有以正确的方式使用术语,但这里是:
有一个 SSIS 包可以将 Oracle 数据库中的数据提取到我们的 SQL Server 2008 R2 仓库中。如果我在 SSIS Visual Studio 2008 中打开此包,系统会提示我输入密码:
The sensitive data in the package 'MyRefresh.dtsx' is encrypted with a password.
对于包本身。我输入密码。我运行包了。效果很好。 之前的那个人每天凌晨 1 点将这个包加载到 SQL 服务器,工作到 运行,在那里也工作得很好。
最近,数据库发生了一些变化。当然,包裹停止工作了。我能够修复它,而且,如果 运行 通过 SSIS Visual Studio 2008,它 运行 很好。但是,当我将它加载到 SQL 服务器时,并且作业 运行s,它失败了:
0xC001405F Failed to decrypt an encrypted XML node because the password was not specified or not correct.
Where/how给我指定密码这样才行运行?
您可以将 /de
开关与 dtexec
实用程序一起用于您的密码,如下所示:
dtexec /f <filename> /de <password>
如果有机会我建议您不再使用EncryptAllWithPassword保护级别。在此处阅读有关包加密级别的更多信息:
简而言之,包加密的思想是阻止人们打开包XML提取明文密码。但通常这是以不安全的方式实现的,这违背了目的。
我建议您始终使用 windows 身份验证:
- 确保您的 Oracle 服务器支持外部身份验证
- 使用 SQL 代理 windows 服务帐户 创建 Oracle 的外部标识登录
- 在您的 Oracle 连接管理器中,使用外部身份验证(使用用户
/
登录且无密码) - 如果您有任何 SQL 服务器连接管理器,您需要执行相同的操作(在 SQL 服务器中,这称为 windows 身份验证)
- 最后确保所有开发人员都在 SQL 服务器中设置了 windows 身份验证,在 Oracle 中设置了外部身份验证,以便他们可以 运行 BIDS 中的程序包
现在您不再需要加密您的包裹(您可以使用 DontSaveSensitive)。所有操作的权限都针对 SQL 代理服务帐户。
您不再需要记住包密码或 Orace 登录密码。
另外,例如,如果您需要轮换 Oracle 登录名的密码,最初您必须在包中的 Oracle 和 中更改此密码。但是通过使用 windows 身份验证,这不再是必需的。
如果你有兴趣,我可以给你更多信息。
回答晚了,但可能对其他 users/thread 访客有帮助
简而言之,要将包加载到 SQL 服务器,必须使用指定的新凭据将其导出,然后导入回指定的文件夹。
这是我找到的关于设置 SSIS package encryption manually in SSMS 的文章,它提供了有关如何 Import/Export 加密包的快速教程。
请注意,保护级别选项在一种情况下涉及敏感数据,在另一种情况下涉及特定包中包含的所有数据。被认为是敏感的数据在 Integration Services 中默认设置:以前标记为精细、不可更改的 XML 标签的变量,由 SSIS 服务控制,以及密码,如果“全部加密”,则可以被认为是敏感的选择了带密码的数据。
包保护级别:
- 不保存敏感数据:如果存在敏感数据,新包导出后将不包含,保持不可用;
- 使用用户密钥加密敏感数据:敏感数据将使用当前用户凭据加密,包仍然可以在本地服务器上使用。哪些数据将被视为敏感数据,取决于包的 creator/owner;
- 使用密码加密敏感数据:在这个级别,必须提供密码——如果用户只想将敏感数据保密,这种加密是可取的。
- 使用用户密钥加密所有数据:与敏感数据加密一样,可以在本地服务器上使用,但它会考虑包内的所有数据;
- 用密码加密所有数据:此级别加密包内的所有数据,需要密码,并提供 100% 的隐私。
希望此信息对您有所帮助。