4

2台のコンピューターに2台の(表面上は)同一のSQL Server Express 2008 R2がインストールされており、どちらもWindows764ビットを実行しています。1台のコンピューター(「赤」と呼びます)で、次の数学コードを実行してデータベースへの接続を開き、データを読み取ることができます

Needs["DatabaseLink`"]

conn = OpenSQLConnection[
  JDBC[
   "Microsoft SQL Server(jTDS)",
   "localhost"],
  "Instance" -> "SQLExpress"]

SQLServer用のjTDSドライバーがにインストールされていc:\windows\system32\ntlmauth.dllます。動作中のマシン「赤」から非動作中のマシン「黒」にdllをコピーしました。

SQL-Serverのインポートおよびエクスポートツールを使用して、非常に単純なデータベースを「赤」から「黒」に転送し、「黒」でLinqPadを実行してデータを読み取ることにより、データベースにアクセスできることを確認しました。すべて良い。

ここで、上記のMathematicaコードを「黒」で実行しようとすると、診断できないエラーメッセージが表示されます。

JDBC :: error: "!(TraditionalForm` \"ネットワークエラーIOException:接続が拒否されました:connect \ ")"

これは、localserviceアカウントまたはnetwork-serviceアカウントでの悪夢のような許可の問題の1つになることを私は知っています。マシン「ブラック」にSql-ServerManagementStudioがなく、SQL Server 2008 R2 Expressにインストールする適切なバージョンのSSMSを見つけることができませんでした(「既知の互換性の問題」を理由に、SSMSExpress2008バージョンはインストールされません。 )LinqPadは開発タスクで正常に機能するため、SSMSを見逃すことはありません。

診断や回避策、または何らかの方法で続行する方法がわかりません。完全にブロックされており、アドバイスやガイダンスをいただければ幸いです。

4

2 に答える 2

3

SQLServerへの接続中に接続エラーが発生しました。認証エラーではありません。

SQLServerがを介して要求を受け入れるように構成されていない可能性があります

使用しているトランスポートプロトコルを介して。SQLServerのサーフェス構成を開く

マネージャーと提供されたすべての方法からの接続を受け入れることを許可します。

于 2012-01-10T07:00:51.807 に答える
3

ここで少し推測しますが、私は試してみます

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433;instance=SQLExpress"]]

OpenSQLConnection[]は「インスタンス」オプションを使用しないと確信しています。次のように渡された場合は機能する可能性があります。

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433"], "Properties"->{"instance"->"SQLExpress"}]

于 2012-01-11T04:24:51.687 に答える