我可以将 Flyway 与 SQL Server 加密一起使用吗?

Posted

技术标签:

【中文标题】我可以将 Flyway 与 SQL Server 加密一起使用吗?【英文标题】:Can I use Flyway with the SQL Server encryption? 【发布时间】:2020-07-30 18:38:44 【问题描述】:

在我们的测试环境中,我们使用 flyway。现在我们也想在我们的生产系统上使用它。

在此系统上,我们强制 SQL Server 加密,因此 flyway 无法与我们的数据库通信。

我收到以下错误:

D:\flyway-6.2.0>飞路信息 数据库密码: Redgate 的 Flyway 社区版 6.2.0 错误: 无法从数据库获取连接 (jdbc:jtds:sqlserver://localhost:Port; databaseName=myDatabase;integratedSecurity=true;) 用于用户 '********': I/O 错误:数据库服务器已关闭连接。 SQL 状态:08S01 错误代码:0 消息:I/O 错误:数据库服务器关闭连接。

有人知道这个问题并可以帮助我吗?

【问题讨论】:

【参考方案1】:

Flyway 在 Flyway 6.2.4 (release notes) 中开始支持“integratedSecurity=true”jdbc 参数,因此如果您升级到该版本或更高版本,它应该可以工作。它还要求 sqljdbc_auth.dll 在类路径中可用。

从https://flywaydb.org/documentation/database/sqlserver#authentication 采取的必要步骤。

Windows 身份验证和 Azure Active Directory 需要安装额外的驱动程序:

    转到“下载 Microsoft JDBC Driver for SQL Server”页面

    下载 Flyway 使用的 JDBC 版本的 .tar.gz 文件

    版本可以在本页顶部驱动部分下的“Maven 中心坐标”url 中查看

    提取文件内容

    在 sqljdbc_version\enu\auth\x64 下查找 sqljdbc_auth.dll 将 sqljdbc_auth.dll 复制到环境中可访问的位置(例如 C:\jdbc-drivers)

    将 sqljdbc_auth.dll 的位置添加到您的 PATH 环境变量中

【讨论】:

以上是关于我可以将 Flyway 与 SQL Server 加密一起使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

具有 SQL Server 集成安全性的 Flyway

SQL Server 2012 上的 Flyway 和清洁序列

Flyway:如何在 flyway 创建 flyway_schema_history 之前创建 SQL Server 数据库

如何在 SQL Server 上的 Flyway 中禁用单个迁移的事务

Flyway 迁移在 MS SQL Server 中成功,但在 H2 数据库中失败

如何在多架构 MS SQL Server 环境中使用 Flyway?