注
DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。
この記事では、Windows アプリケーションでデータベース接続文字列を処理するためのガイダンスを提供します。 ただし、クラウドおよび Web アプリケーションでは、より安全な手法を使用できます。 Connected Services を使用して、ローカル開発用のsecrets.json ファイルのサポートを追加し、Azure にデプロイするときにシークレット ストレージ用の Azure Key Vault に移行できます。 詳細については、「 開発中のシークレットの保護」を参照してください。
セキュリティに関する考慮事項
セキュリティ リスクを回避するには、Visual Studio アプリケーションで接続文字列を適切に処理することが重要です。 Visual Studio アプリケーションの接続文字列は、多くの場合、アプリケーション構成ファイル (アプリケーション設定とも呼ばれます) に保存されるか、アプリケーションに直接ハードコーディングされます。 データベース資格情報などの接続文字列内の機密情報は暗号化されていないバイナリから直接読み取ることができるため、アプリケーションに直接ハード コーディングすることはお勧めしません。 接続文字列をアプリケーション構成ファイルに保存する方が安全です。これにより、アプリケーションの保守作業も簡略化されます。 接続文字列を変更する必要がある場合は、ソース コードで変更してアプリケーションを再コンパイルする代わりに、アプリケーション設定ファイルで更新できます。
パスワードなどの機密情報を接続文字列内に格納すると、アプリケーションのセキュリティに影響を与える可能性があります。 アプリケーション構成ファイルに保存された接続文字列は暗号化されないため、他のユーザーがファイルにアクセスしてその内容を表示できる可能性があります。 データベースにユーザー名とパスワードが必要な場合は、接続文字列から省略できます。 ただし、データベースに正常に接続するには、アプリケーションで何らかの方法でこの情報を提供する必要があります。 たとえば、ユーザーに名前とパスワードの入力を求めるダイアログ ボックスを作成し、実行時に接続文字列を動的に作成した場合、データベースへの途中でこの情報が傍受される可能性があります。
これらのセキュリティの問題を回避するには、それをサポートするデータベースの場合は、Windows 統合セキュリティを使用して、データベースへのアクセスをより安全に制御します。 詳細については、「 接続情報の保護」を参照してください。
データベース接続文字列を保存する
データベース接続文字列は、アプリケーション設定またはデータセットに保存できます。
アプリケーション設定に接続文字列を保存する
接続文字列をアプリケーション設定に直接保存するには、次の手順に従います。
ソリューション エクスプローラーで、プロジェクトの種類に応じて、次のいずれかの手順を実行します。
- C# プロジェクトの場合は、プロジェクトを展開し、[ プロパティ ] ノードをダブルクリックします。
- Visual Basic プロジェクトの場合は、プロジェクトを展開し、[ マイ プロジェクト ] ノードをダブルクリックします。
プロジェクト デザイナーが開きます。
[Settings](設定) タブを選択します。
接続文字列の 名前 を入力します。 コード内の接続文字列にアクセスするときは、この名前を参照してください。
[種類] を [(接続文字列)] に設定します。
[スコープ] は [アプリケーション] のままにします。
[値] フィールドに接続文字列を入力するか、[値] フィールドの省略記号 (...) ボタンを選択して [接続プロパティ] ダイアログ ボックスを開いて接続文字列を作成します。
データセットに接続文字列を保存する
データ ソース構成ウィザードを使用してデータセットに接続文字列を保存するには、次の手順に従います。
[ データ接続の選択 ] ページで、データ接続を選択し、[ 次へ] を選択します。
[ アプリケーション構成ファイルへの接続文字列の保存 ] ページで、アプリケーション構成ファイルへの接続を保存するオプションを選択します。
データベース接続文字列を編集する
既存のデータベース接続文字列は、アプリケーション設定またはデータセットで編集できます。
アプリケーション設定で接続文字列を編集する
アプリケーション設定で接続文字列を編集するには:
ソリューション エクスプローラーで、プロジェクトの種類に応じて、次のいずれかの手順を実行します。
- C# プロジェクトの場合は、プロジェクトを展開し、[ プロパティ ] ノードをダブルクリックします。
- Visual Basic プロジェクトの場合は、プロジェクトを展開し、[ マイ プロジェクト ] ノードをダブルクリックします。
プロジェクト デザイナーが開きます。
[Settings](設定) タブを選択します。
編集する接続を見つけ、[ 値 ] フィールドでテキストを選択します。
[値] フィールドで接続文字列を編集するか、[値] フィールドの省略記号 (...) ボタンを選択して、[接続のプロパティ] ダイアログ ボックスで接続を編集します。
データセット内の接続文字列を編集する
データセット内の TableAdapter またはクエリの接続情報を変更できます。
データセット内の接続文字列を編集するには、次の手順に従います。
ソリューション エクスプローラーで、編集する接続を持つデータセット (.xsd ファイル) をダブルクリックします。
接続を編集したいTableAdapterまたはクエリを選択します。
[ プロパティ ] ウィンドウで、[ 接続 ] ノードを展開します。
接続文字列を変更するには、 ConnectionString プロパティを編集するか、[ 接続 ] ノードの下矢印を選択して [ 新しい接続] を選択します。