首页 > 解决方案 > 驱动程序无法使用安全套接字层 (SSL) 加密建立到 SQL Server 的安全连接

问题描述

我正在尝试通过我的 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:没有这样的属性:类的连接: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 在 com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)[0;39m [31m 在 com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)[ 0;39m [31m 在 com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:331)[0;39m [31m 在 com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java :322)[0;39m [31m 在 com.kms.katalon.core.main。TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:301)[0;39m [31m 在 com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:293)[0;39m [31m 在 com.kms.katalon。 core.main.TestCaseExecutor.execute(TestCaseExecutor.java:227)[0;39m [31m 在 com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)[0;39m [31m 在 com. kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(未知来源)[0;39m [ 31m 在 TempTestCase1555589132729.run(TempTestCase1555589132729.groovy:21)执行(TestCaseExecutor.java:227)[0;39m [31m 在 com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)[0;39m [31m 在 com.kms.katalon.core。 main.TestCaseMain.runTestCase(TestCaseMain.java:105)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(未知来源)[0;39m [31m at TempTestCase1555589132729.run( TempTestCase1555589132729.groovy:21)执行(TestCaseExecutor.java:227)[0;39m [31m 在 com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)[0;39m [31m 在 com.kms.katalon.core。 main.TestCaseMain.runTestCase(TestCaseMain.java:105)[0;39m [31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(未知来源)[0;39m [31m at TempTestCase1555589132729.run( TempTestCase1555589132729.groovy:21)

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

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

后来我从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)

这导致:

找不到适合 jdbc:sqlserver:aaa-sql-qa.database.windows.bbb:dbName 的驱动程序

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

标签: sqljdbcgroovysqlconnectionkatalon-studio

解决方案


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

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


推荐阅读