Microsoft SQL Server データベースからのデータ取得試行時の「com.microsoft.sqlserver.jdbc.SQLServerException Login failed for user」エラー Issue ServiceNow インスタンスは、データソース内で構成された JDBC 経由で Microsoft SQL Server データベースからデータを取得できます。一部のお客様から、データソースレコードにユーザーの詳細と認証情報が正しい (この例では「TESTUSER\svc-sccm-snowtest」) 場合でも、次に類似したエラーが表示されるという報告があります。 Data source: SCCM 2016 NetworkError: java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'TESTUSER\svc-sccm-snowtest'.ClientConnectionId:76194d006-988f-4814-aec1-366o28bfb62ccom.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)java.sql.DriverManager.getConnection(DriverManager.java:664)java.sql.DriverManager.getConnection(DriverManager.java:208)com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:102)com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:74)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)Releaseすべての ServiceNow リリース。この問題は、(廃止された) SCCM 2016 統合や (現在の) サービスグラフ SCCM 統合など、この機能を使用する統合を含め、JDBC 経由で Microsoft SQL Server データベースに接続するときに発生する可能性があります。CauseSQL Server データベースは Windows 統合認証を必要とするため、ユーザー名とパスワードが正しい場合でもログイン試行を拒否します。つまり、SQL Server データベースへのアクセスには、ServiceNow MID サーバー Windows サービスを実行する Windows ユーザーの認証情報を使用する必要があります。ResolutionMID サーバー側の操作: MID サーバーマシンに移動し、[サービス] にアクセスします。MID サーバーの [サービス] に移動します。サービスの [ログオン] タブに移動します。サービスがドメインアカウントを使用するように設定します (例:TESTUSER\svc-sccm-snowtest)。パスワードを入力します。サービスを再起動します。 ServiceNow インスタンス側の操作: データソースに移動します。[統合認証を使用] を「true」に設定します。レコードを保存します。 次のように、JDBC 接続文字列を変更して 「integratedSecurity=true」を指定することが必要な場合もあります。 jdbc:sqlserver://database-server.example.com:1433;selectMethod=cursor;databaseName=exampledb;integratedSecurity=trueRelated Links各 MID サーバーは、1 つの Windows ユーザーアカウントとしてのみ実行できます。 この MID サーバーを他の統合に使用するには、MID サーバー内の正確なアカウントを使用してターゲットデータベースに接続するか、他のデータベースが統合認証を要求しないように設定する必要があります。従って、統合認証が必要な他の SQL 接続があり、ユーザーアカウントが異なる場合は、それらの接続に別の MID サーバーを使用する必要があります。MID サーバーの Windows サービスは、単一のユーザーアカウントとしてのみ実行できます。 「The login is from an untrusted domain」エラー 統合認証を使用しているときに、次のエラーが表示されることがあります。 java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed.信頼されていないドメインからのログインです。Windows 認証では使用できません。ClientConnectionId:123f7398-5f29-2649-b807-c39889365cfecom.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262) これは、別の場所に新しい MID サーバーをセットアップする場合 (例えば、既存の MID がオンプレミスであるときに新しい MID を AWS EC2 インスタンスにセットアップする場合) に、お客様に表示されることがあります。これは ServiceNow の問題ではないため、お客様が AD および SQL Server 環境の管理者と協力して解決する必要があります。