我可以将 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 2012 上的 Flyway 和清洁序列
Flyway:如何在 flyway 创建 flyway_schema_history 之前创建 SQL Server 数据库
如何在 SQL Server 上的 Flyway 中禁用单个迁移的事务