データベース接続は、アプリケーション開発の標準的な側面に進化しました。データベース接続文字列は、現在、すべてのプロジェクトに標準で必須となっています。必要な構文を見つけるために、別のアプリケーションから接続文字列をコピーしたり、検索を実行したりすることがよくあります。これは、非常に多くの接続文字列オプションがある SQL Server と相互運用する場合に特に当てはまります。次に、接続文字列のさまざまな側面を調べてみましょう。
接続文字列
オブジェクトのインスタンス化または作成中に、データベース接続文字列がプロパティまたはメソッドを通じて必要なオブジェクトに渡されます。接続文字列の形式は、キーと値のパラメーターのペアをセミコロンで区切ったリストです。リスト A には、SqlConnection オブジェクト (実際の接続文字列はオブジェクトの ConnectionString プロパティを通じて割り当てられます) を作成して SQL Server に接続する方法を示す C# の例が含まれています。リスト B には、VB.NET のバージョンが含まれています。
リストA
string cString = "データ ソース = サーバー;初期カタログ = db;ユーザー ID = テスト;パスワード = テスト;";
SqlConnectionconn = 新しい SqlConnection();
conn.ConnectionString = cString;
conn.Open();
リストB
Dim cString As String
cString = "データ ソース = サーバー;初期カタログ = db;ユーザー ID = テスト;パスワード = テスト;"
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = cString
conn.Open()
接続文字列では、データベース サーバーとデータベース、およびデータベースへのアクセスに必要なユーザー名とパスワードを指定します。この形式はすべてのデータベース対話に適しているわけではありませんが、利用可能なオプションが多数あり、その多くには同義語があります。
データ ソース、初期カタログ、ユーザー ID、およびパスワードの要素に加えて、次のオプションを使用できます。
アプリケーション名: アプリケーションの名前。指定しない場合、その値は .NET SqlClient データ プロバイダーです。
AttachDBFilename/拡張プロパティ/初期ファイル名: データベースに接続できるメイン ファイルの名前 (絶対パス名を含む)。データベース名はキーワード「database」で指定する必要があります。
接続タイムアウト/接続タイムアウト: サーバーへの接続が終了するまでの待機時間 (秒単位) です。デフォルト値は 15 です。
接続の存続期間: 接続が接続プールに返されると、その作成時刻が現在時刻と比較されます。この期間が接続の有効期間を超えると、接続はキャンセルされます。デフォルト値は 0 です。
接続のリセット: 接続が接続プールから削除されたときに接続がリセットされるかどうかを示します。 false valid は、接続を取得するときに追加のサーバー往復の必要性を排除し、そのデフォルト値は true です。
現在の言語: SQL Server 言語レコードの名前。
データ ソース/サーバー/アドレス/アドレス/ネットワーク アドレス: SQL Server インスタンスの名前またはネットワーク アドレス。
Encrypt (暗号化): 値が true の場合、サーバーに承認された証明書がインストールされている場合、SQL Server はクライアントとサーバーの間で転送されるすべてのデータに SSL 暗号化を使用します。受け入れられる値は、true、false、yes、および no です。
Enlist (登録): 接続プール プログラムが作成スレッドの現在のトランザクション コンテキストに接続を自動的に登録するかどうかを示します。デフォルト値は true です。
データベース/初期カタログ: データベースの名前。
統合セキュリティ/信頼された接続: データベースへの接続に Windows 認証を使用するかどうかを示します。 true、false、または true と同等の sspi に設定できます。デフォルト値は false です。
最大プール サイズ (接続プールの最大容量): 接続プールで許可される最大接続数は 100 です。
Min Pool Size (接続プールの最小容量): 接続プールで許可される接続の最小数。デフォルト値は 0 です。
ネットワーク ライブラリ/ネット: SQL Server インスタンスへの接続を確立するために使用されるネットワーク ライブラリ。サポートされる値には、dbnmpntw (名前付きパイプ)、dbmsrpcn (マルチプロトコル/RPC)、dbmsvinn (Banyan Vines)、dbmsspxn (IPX/SPX)、および dbmssocn (TCP/IP) が含まれます。プロトコルのダイナミック リンク ライブラリは、適切な接続にインストールする必要があります。デフォルトは TCP/IP です。
パケット サイズ: データベースとの通信に使用されるネットワーク パケットのサイズ。デフォルト値は 8192 です。
Password/Pwd: アカウント名に対応するパスワード。
Persist Security Info: 接続の確立後にセキュリティ情報が利用可能かどうかを判断するために使用されます。値が true の場合、ユーザー名やパスワードなどのセキュリティ上重要なデータは使用可能ですが、値が false の場合は使用できません。接続文字列をリセットすると、パスワードを含むすべての接続文字列値が再構成されます。デフォルト値は false です。
プーリング: 接続プーリングを使用するかどうかを決定します。 true の場合、接続は適切な接続プールから取得されるか、必要に応じて接続が作成され、適切な接続プールに追加されます。デフォルト値は true です。
ユーザー ID: データベースへのログインに使用されるアカウント名。
ワークステーション ID: SQL Server に接続されているワークステーションの名前。デフォルト値はローカル コンピュータの名前です。
次の接続文字列は、信頼された接続と指定されたログイン資格情報を使用して、TestDev1 サーバー上の Northwind データベースへの接続を確立します (管理者のパスワードを空白のままにするより安全性は低くなります): Server=TestDev1;Database=Northwind;User ID=sa ;
パスワード=;Trusted_Connection=True;
次の接続文字列では、TCIP/IP と特定の IP アドレスを使用します。
データ ソース=192.162.1.100,1433;ネットワーク ライブラリ=DBMSSOCN;
初期カタログ=Northwind;ユーザーID=sa;パスワード=;
使用するオプションは接続文字列に簡単に含めることができますが、やはりアプリケーションとその要件によって異なります。何が利用できるのかを知って、適切に使用できるようにするのは良いことです。
ADO.NET 2.0の使用
ADO.NET 2.0 では、.NET Framework データ プロバイダーごとに新しい接続文字列ジェネレーターが導入されています。キーワードは属性としてリストされ、データ ソースに送信される前に接続文字列構文を有効にすることができます。また、構成ファイル内の接続文字列の保存と取得、および保護された方法での暗号化を容易にする新しいクラスもあります。