22

まず、この問題をトラブルシューティングしようとしているこのスレッドやWeb上の他のスレッドを知っています。

そこに掲載されている解決策は私の問題には当てはまりません。私は質問をすることを決定する前にこれを解決するために5時間を費やしました。

問題:SQL認証を使用してSSMSにログイン(またはJavaアプリケーションから接続)しようとすると、次のエラーが発生します。

サーバーとの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。(プロバイダー:共有メモリプロバイダー、エラー:0-パイプのもう一方の端にプロセスがありません。)(Microsoft SQL Server、エラー:233)

それは機能しますが、統合認証を使用するオプションではありません。接続しようとしているデータベースは、SSMSインスタンスと同じマシン上にあります。ネットワークはありません。これはスタンドアロンシステムです。

名前付きパイプは私の構成で有効になっています。再起動しました。TCPIPは私の構成の名前付きパイプよりも優先度が高いためです。

私はSQLServerをアンインストールして再インストールするところまで行ったが、役に立たなかった。

SQLServerインスタンスの詳細は次のとおりです。

Microsoft SQL Server Management Studio - 10.0.2531.0
Microsoft Analysis Services Client Tools - 10.0.1600.22
Microsoft Data Access Components (MDAC)  - 6.1.7601.17514
Microsoft MSXML - 3.0 5.0 6.0 
Microsoft Internet Explorer - 9.0.8112.16421
Microsoft .NET Framework - 2.0.50727.5466
Operating System     - 6.1.7601

構成の詳細は次のとおりです。http: //i45.tinypic.com/vxdz7c.png http://i45.tinypic.com/vxdz7c.jpg

このコードを使用してJavaから接続します。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;integratedSecurity=false;User=JIMBO; Password=JIMBO;";
Connection con = DriverManager.getConnection(connectionUrl);

ただし、このエラーは、SSMSに直接ログインしようとしたときにも発生することを覚えておいてください。前もって感謝します。

-ジム

4

13 に答える 13

28

TCP/IP の使用を強制するには、接続文字列で localhost を 127.0.0.1 に置き換えます。

ユーザー名とパスワードを使用しているため、SQL 認証が有効になっていることを確認してください。デフォルトでは、sqlserver 2008 では Windows 統合のみが有効になっています。

SqlServer 認証では、セキュリティを強化するためにパスワード ポリシーが設定されていることに注意してください。

于 2013-03-23T10:53:54.290 に答える
4

TCP/IP 接続を (または127.0.0.1の代わりに指定して) 強制すると、エラーの本当の理由が明らかになることがあります。私の場合、接続文字列で指定されたデータベース名が正しくありませんでした。localhost.

したがって、これまでのチェックリストは次のとおりです。

  • 構成マネージャーで名前付きパイプが有効になっていることを確認します (サーバーを再起動することを忘れないでください)。
  • SQL Server 認証(または混合モード) が有効になっていることを確認します。
  • ユーザー名とパスワードが正しいことを確認してください。
  • 接続先のデータベースが存在することを確認してください。
于 2015-05-10T07:56:45.710 に答える
2

接続文字列に「user instance=False」を追加すると、問題が解決しました。

<connectionStrings>
  <add name="NorthwindEntities" connectionString="metadata=res://*/Models.Northwind.csdl|res://*/Models.Northwind.ssdl|res://*/Models.Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS2008R2;attachdbfilename=|DataDirectory|\Northwind.mdf;integrated security=True;user instance=False;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
于 2015-01-17T16:27:08.730 に答える
2

私の解決策は、Windowsログインを使用してログインし、セキュリティ>ログインに移動して問題のあるIDを見つけ、使用したパスワードを再入力することでした。サービスを再起動します...

于 2013-11-26T23:01:48.063 に答える
1

私にとっては、Windows 認証のみが有効になっていることが原因でした。セキュリティ認証モードを変更します。SQL Server Management Studio オブジェクト エクスプローラーで、サーバーを右クリックし、[プロパティ] をクリックします。[セキュリティ] ページの [サーバー認証] で、新しいサーバー認証モードを選択し、[OK] をクリックします。サーバー認証モードの変更 - MSDN - Microsoft https://msdn.microsoft.com/en-AU/library/ms188670.aspx

于 2015-10-30T04:42:09.383 に答える
0

これは参考になるかもしれません

私は同じ問題を抱えていました.このサイトや他のサイトで提案された解決策を何度も試した後、シナリオの解決策を見つけました. アカウントがロックアウトされました アカウントがロックアウトされている かどうかを確認する方法... より高い特権を持つアカウント (SA や管理者権限など) を使用しサーバーログインしますログイン ==>プロパティ ウィンドウでステータスページを選択

この3 つのことを確認してください 1、データベースに接続する権限が付与されている 2、ログインが有効になっている 3、ステータス SQL サーバー認証 ログインがロックアウトされていない (ボックスのチェックを外す)

ありがとう

于 2015-08-11T21:40:30.963 に答える
0

これに続いて一つ。Windows 認証のみで SQL Server 2014 をインストールしました。混合モードを有効にした後、SQL ユーザーでログインできず、元の投稿者と同じエラー メッセージが表示されました。名前付きパイプが有効になっていることを確認しましたが、何度か再起動してもログインできませんでした。ホスト名の代わりに 127.0.0.1 を使用するとログインできましたが、興味深いことに、最初のログイン時にパスワード リセット プロンプトが必要でした。

SQL Server パスワード リセット プロンプト

パスワードをリセットすると、アカウントは機能しました。奇妙なのは、パスワード ポリシーと有効期限を明確に無効にしたことです。

于 2016-04-26T19:57:15.753 に答える
0

私にとって、問題は停電が原因のようです。サーバーコンピューターを再起動すると解決しました。

于 2017-08-28T01:44:00.347 に答える
0

最初のステートメントとして追加して connection.close() を実行したところ、解決されました。次に、行を削除しました。

于 2016-01-29T09:37:50.967 に答える