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

时间:2019-04-18 12:20:44

标签: sql jdbc groovy sqlconnection katalon-studio

我试图通过我的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:无此类属性:connection   类别: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   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   com.kms.katalon.core.main.TestCaseMain $ runTestCase $ 0.call(未知   来源)[0; 39m [31m at   TempTestCase1555589132729.run(TempTestCase1555589132729.groovy:21)

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

  

驱动程序无法通过以下方式与SQL Server建立安全连接   使用安全套接字层(SSL)加密

我后来在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连接到DB。另外,我没有使用防火墙的能力。我在this答案中看到使用jTDS,但是我无法继续处理其他问题(当然它也没有连接)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

(当然b / c不能正常工作,我正尝试在其中使用调试功能)