我们正在尝试使用Liquibase从Jenkins Linux机器运行sql文件到Microsoft SQL服务器数据库并获取错误:
错误:构建步骤失败,异常为java.lang.RuntimeException: 使用驱动程序获取数据库时出错 com.microsoft.sqlserver.jdbc.SQLServerDriver使用url JDBC:SQLSERVER://*********.database.windows.net:***;数据库= *********;加密= TRUE; trustServerCertificate = FALSE; hostNameInCertificate = *。 database.windows.net; loginTimeout = 30;验证= ActiveDirectoryIntegrated” 在org.jenkinsci.plugins.liquibase.evaluator.AbstractLiquibaseBuilder.createJdbcConnection(AbstractLiquibaseBuilder.java:236) 在org.jenkinsci.plugins.liquibase.evaluator.AbstractLiquibaseBuilder.createLiquibase(AbstractLiquibaseBuilder.java:164) 在org.jenkinsci.plugins.liquibase.evaluator.AbstractLiquibaseBuilder.perform(AbstractLiquibaseBuilder.java:129)在hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)在hudson.tasks.BuildStepMonitor $ 1.perform(BuildStepMonitor.java: 20)在hudson.model.AbstractBuild $ AbstractBuildExecution.perform(AbstractBuild.java:779)在hudson.model.Build $ BuildExecution.build(Build.java:205)在hudson.model.Build $ BuildExecution.doRun(Build.java :162) 在hudson.model.AbstractBuild $ AbstractBuildExecution.run(AbstractBuild.java:534) 在hudson.model.Run.execute(Run.java:1720)在hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)在hudson.model.ResourceController.execute(ResourceController.java:98)在hudson.model。 Executor.run(Executor.java:404) 引起:com.microsoft.sqlserver.jdbc.SQLServerException:** Azure 仅在Windows操作系统上支持Active Directory 系统。**在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1289)在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
我们尝试直接连接SQL服务器身份验证,但它很成功,但在使用Azure服务主体凭据时,我们收到此错误。我们如何使用Azure SPN与Liquibase一起使用?
答案 0 :(得分:1)
您确定要使用集成到SQL Azure的Active Directory进行连接吗?您应该尝试使用SQL Azure的管理服务器登录或使用在SQL Azure上创建的登录进行连接。如果是这种情况,请查看如何在下面文章中包含的样本上创建连接字符串。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connect-query-java
希望这有帮助。
此致
Alberto Morillo