驱动程序无法使用安全套接字层 (SSL) 加密与 SQL 服务器建立安全连接

driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption

我正在尝试通过我的 groovy 代码连接到我的公司 Microsoft sql。使用此代码:

String conn= "jdbc:sqlserver://;servername="+url+";databaseName=central;user=***qa***;password=***mypassword***;"
    def sqlConnection = Sql.newInstance(conn,username,password,"com.microsoft.sqlserver.jdbc.SQLServerDriver")

结果出现错误:

mgroovy.lang.MissingPropertyException: No such property: connection for class: sqlKeyWords.checking[0;39m [31m at sqlKeyWords.checking.connectDB(checking.groovy:60)[0;39m [31m at sqlKeyWords.checking.invokeMethod(checking.groovy)[0;39m [31m at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:49)[0;39m [31m at CreateOrg.run(CreateOrg:47)[0;39m [31m at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)[0;39m [31m at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[0;39m [31m at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:331)[0;39m [31m at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:322)[0;39m [31m at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:301)[0;39m [31m at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:293)[0;39m [31m at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:227)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain$runTestCase[=13=].call(Unknown Source)[0;39m [31m at TempTestCase1555589132729.run(TempTestCase1555589132729.groovy:21)

此错误描述性不强,因此这是我在调试中发现的错误:

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption

我后来从 http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html 尝试了这个:

def db = [url:'jdbc:sqlserver:'+url+':central', user:username, password:password, driver:'com.microsoft.sqlserver.jdbc.SQLServerDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)

这导致:

No suitable driver found for jdbc:sqlserver:aaa-sql-qa.database.windows.bbb:dbName

我看到了很多答案,其中大部分都说要使用服务器的防火墙,但我可以通过我的 python 代码或 SSMS 连接到数据库。另外,我没有能力玩防火墙。我看到在 this 答案中使用了 jTDS,但我无法继续处理其他问题(当然它也没有连接)

http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html

conn 变量是一个简单的字符串,所以实际上您在初始化 newInstance 时并没有发送 url。相反,您发送整个字符串。尝试只发送 url.

我不知道为什么,但是当 运行 在我连接调试的线路上进行调试时,出现了这个错误。这是我在自动化工具 Katalon(使用 groovy)

中想到的

(当然 b/c 它不工作我正试图在那里使用调试)