次の方法で共有


.NET Framework アプリケーションのデータベース接続文字列を保存および編集する

Note

データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初期からのレガシ .NET Framework テクノロジです。 テクノロジが特に役立つのは、ユーザーがデータを変更し、変更をデータベースに戻して保持できるようにするアプリケーションです。 データセットは非常に優れたテクノロジであることが証明されていますが、新しい .NET アプリケーションでは Entity Framework Core を使用することをお勧めしています。 Entity Framework には、オブジェクト モデルとして表形式データを操作する、より自然な方法が用意されており、よりシンプルなプログラミング インターフェイスが備わっています。

注意

この記事では、Windows アプリケーションで接続文字列を処理する方法を説明します。クラウドおよび Web アプリケーションには、より安全な手法があります。 ローカル開発用に接続済みサービスを使用して Secrets.json のサポートを追加し、Azure にデプロイするときにシークレットの保管用に Azure Key Vault に移行できます。 開発におけるシークレットの保護に関する説明を参照してください。

Visual Studio アプリケーションで接続文字列を正しく処理する場合、セキュリティ リスクが発生しないよう注意する必要があります。 Visual Studio アプリケーションの接続文字列は、通常、アプリケーションの構成ファイル (アプリケーション設定とも呼ばれます) に保存されるか、アプリケーションに直接ハードコーディングされます。 アプリケーションに直接ハードコーディングすることは、データベースの資格情報など、接続文字列の機密情報が暗号化されていないバイナリから直接読み取れてしまうため、お勧めしません。 接続文字列をアプリケーション構成ファイルに保存すると、アプリケーションの保守作業が簡単になります。 接続文字列を変更する必要がある場合は、アプリケーション設定ファイルで接続文字列を更新できます (ソース コードで変更してアプリケーションをコンパイルし直す必要はありません)。

接続文字列内に機密情報 (パスワードなど) を格納すると、アプリケーションのセキュリティに影響を及ぼすことがあります。 アプリケーション構成ファイルに保存された接続文字列は暗号化も難読化もされないため、第三者がファイルにアクセスしてコンテンツを表示する可能性があります。

これをサポートするデータベースでは、データベースへのアクセスを制御する方法として Windows 統合セキュリティを使用する方が安全です。

Windows 統合セキュリティを使用しない環境で、データベースにユーザー名とパスワードが必要な場合、接続文字列からユーザー名とパスワードを削除できます。ただし、データベースに正常に接続するには、この情報をアプリケーションから提供する必要があります。 たとえば、ユーザーにこの情報を要求するダイアログ ボックスを作成し、実行時に接続文字列を動的にビルドできます。 この方法でも、情報がデータベースに送信される途中で傍受された場合は、セキュリティの問題が発生する可能性があります。

詳細については、「接続情報の保護」を参照してください。

データ ソース構成ウィザード内から接続文字列を保存するには

データ ソース構成ウィザード[アプリケーション構成ファイルに接続文字列を保存] ページで、接続を保存するオプションを選択します。

接続文字列をアプリケーション設定に直接保存するには

  1. ソリューション エクスプローラーで[My Project] アイコン (Visual Basic) または [プロパティ] アイコン (C#) をダブルクリックして、プロジェクト デザイナーを開きます。
  2. [Settings](設定) タブを選択します。
  3. [名前] に接続文字列の名前を入力します。 コードで接続文字列にアクセスするときにこの名前を参照します。
  4. [種類][接続文字列] に設定します。
  5. [スコープ][アプリケーション] のままにします。
  6. [値] フィールドに接続文字列を入力するか、 [値] フィールドの省略記号 ([...]) ボタンをクリックして、 [接続のプロパティ] ダイアログ ボックスを開き、接続文字列を作成します。

アプリケーション設定に保存された接続文字列を編集する

アプリケーション設定に保存されている接続情報は、プロジェクト デザイナーを使用して変更できます。

アプリケーション設定に格納された接続文字列を編集するには

  1. ソリューション エクスプローラーで[My Project] アイコン (Visual Basic) または [プロパティ] アイコン (C#) をダブルクリックして、プロジェクト デザイナーを開きます。
  2. [Settings](設定) タブを選択します。
  3. 編集する接続を見つけ、 [値] フィールド内のテキストを選択します。
  4. [値] フィールドの接続文字列を編集するか、 [値] フィールドの省略記号 ([...]) ボタンをクリックして、 [接続のプロパティ] ダイアログ ボックスで接続を編集します。

データセットの接続文字列を編集する

データセット内の各 TableAdapter の接続情報を変更できます。

データセット内の TableAdapter の接続文字列を編集するには

  1. ソリューション エクスプローラーで、編集する接続を含むデータセット (.xsd ファイル) をダブルクリックします。
  2. 編集する接続を含む TableAdapter またはクエリを選択します。
  3. [プロパティ] ウィンドウで、 [接続] ノードを展開します。
  4. 接続文字列をすばやく変更するには、ConnectionString プロパティを編集するか、 [接続] プロパティの下矢印をクリックして [新しい接続] を選択します。

セキュリティ

接続文字列内に機密情報 (パスワードなど) を格納すると、アプリケーションのセキュリティに影響を及ぼすことがあります。 データベースへのアクセスを制御する方法としては、Windows 統合セキュリティを使用する方が安全です。 詳細については、「接続情報の保護」を参照してください。