web-dev-qa-db-ja.com

同じワークグループに接続されている他のコンピューターからSQL Serverデータベースにアクセスする方法

SQL Serverデータベースを使用するC#アプリケーションを作成しました。ワークグループで他のコンピュータを自分と相互に接続しています。 C#アプリケーションを他の人と共有しました。アプリケーションを開くと、エラーが発生します

SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした

しかし、アプリケーションは私のPCで正常に動作しています。私が使用している接続文字列は

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

これは.configファイル。

アプリケーションは私のPCで正常に動作しています。私は何をしなければなりませんか?サーバーでTCP/IPを有効にしましたが、同じエラーが引き続き発生します。接続文字列などに変更がありますか?

11
ash

リモートアクセスを許可するには、2つのレベルのセキュリティを変更する必要があります。

  1. SQL Serverの構成。 Express、Developer、およびEnteprise Evaluationエディションのデフォルトでは、TCP/IPプロトコルによる接続はdisabledです。 SQL Server構成マネージャーを使用してこれを有効にします。

  2. Windowsファイアウォール。ファイアウォールを完全に無効にすると、このコンポーネントで機能しますが、セキュリティのベストプラクティスではありません(必須ではありません)。 (注:このセクションでは、のデフォルト構成を想定しています。これらの手順にわずかに影響する変更)。

    接続するSQL Serverインスタンスのタイプに応じて、2つのケースがあります。

    1. デフォルトのインスタンス(コンピュータ名のみで接続)。 TCPポート1433またはデータベースエンジンサービスのいずれかに受信許可ルールを追加します。

    2. 名前付きインスタンス(コンピューター名+インスタンス名で接続)。 UDPポート1434に着信許可を追加して、SQLブラウザーサービスにアクセスします。データベースエンジンサービスに着信許可ルールを追加します。

この手順は完全に文書化されています ここ 、または私が説明を見てから名前付きインスタンスの構成をウォークスルーすることができます ここ

17
Jon Seigel

SQL-Serverで正しいNetwork-Settingsを設定する必要があります: SQL-ServerでアクティブなTCP/IP また、サーバーBrowser-Serviceが実行されていることを確認してください。 SQL-Serverにアクセスできません。

0
BendEg

Bendegで述べられているようにsqlbrowserサービスがオンになっていることと、クライアントが名前を解決するためにsqlbrowserにアクセスできるようにマシンでUDP 1434が開いていることを確認してください。名前付きインスタンスのTCP/IPポートも開きます。

インスタンスのポートを見つけるには、Management Studioでtcp:プレフィックスを使用して次のように接続します:tcp:ASHISHPC1\SQLEXPRESSと以下のクエリの結果は、ワークグループのクライアントに公開する必要があるポートです。

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
0
Robert Gannon