【发布时间】:2021-11-11 15:54:42
【问题描述】:
我正在从 ServiceNow 连接到 SQL 服务器。我收到一个错误,我不确定这意味着什么。任何帮助表示赞赏。
连接网址:jdbc:sqlserver://TESTSCCMSQL01;selectMethod=cursor;databaseName=TEST_ASH;integratedSecurity=true
Error: java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'CAMBRIDGE\svc-p-SCCM-SN-CMDB'. ClientConnectionId:e9216fed-c737-4f09-b27b-a63f6b66b925
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)
com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:283)
com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:129)
com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:37)
com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.complete(SQLServerConnection.java:4786)
com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:5068)
com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3731)
com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:94)
com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3675)
com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2979)
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2488)
com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2142)
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1993)
com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1164)
com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:760)
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)
com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:110)
com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:82)
com.service_now.mid.connections.jdbc.JDBCConnectionFactory.create(JDBCConnectionFactory.java:65)
com.service_now.mid.connections.ConnectionCachePool.getAvailableConnection(ConnectionCachePool.java:82)
com.service_now.mid.connections.ConnectionCache.get(ConnectionCache.java:94)
com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:784)
com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:119)
com.service_now.mid.probe.AProbe.process(AProbe.java:102)
com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:122)
com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)
com.service_now.mid.threadpool.ResourceUserQueue$RunnableProxy.run(ResourceUserQueue.java:649)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base/java.lang.Thread.run(Thread.java:834)
at com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:788)
at com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:119)
at com.service_now.mid.probe.AProbe.process(AProbe.java:102)
at com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:122)
at com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)
at com.service_now.mid.threadpool.ResourceUserQueue$RunnableProxy.run(ResourceUserQueue.java:649)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
【问题讨论】:
-
您能在 SQL Server 日志中看到连接尝试吗?如果是这样,那里的错误是什么?
-
错误很明显:用户“CAMBRIDGE\svc-p-SCCM-SN-CMDB”登录失败。也许您需要咨询serverfault.com - 我会投票结束这个问题,因为这是一个与服务器相关的问题
-
出于安全考虑,不向客户端返回登录失败的具体原因。正如@Larnu 建议的那样,SQL Server 错误日志将包含有关原因的更多详细信息。常见原因有1)用户没有登录(服务器访问),2)用户不是数据库中的用户(数据库访问),3)连接字符串中指定的数据库不存在或不可用。
-
其实不是,@LeandroBardelli,传回应用层的身份验证错误是故意模糊的。如果返回真正的错误,对安全性不利。例如,如果“提供的密码与
LOGIN不匹配”。当这是错误时被返回,那么恶意的人就知道他们试图入侵的帐户是真实帐户。 -
哦,不知道。谢谢!我撤回我的投票结束
标签: sql sql-server servicenow sccm