Skip to content

MS_ADONETConnectionString

nishi_74322014 edited this page Aug 13, 2026 · 1 revision

ADO.NETデータプロバイダの接続文字列

概要

ADO.NET データプロバイダに接続先・認証方式・接続の挙動を指示する
キー=値; 形式の文字列。

移行メモ(元ページの状態): 元ページは「概要」「詳細」の見出しのみで
本文が空のスタブであり、参考リンクだけが記載されていた。
移行に際して、ページの位置付けを保ったまま
単独で読んで要点が分かる程度の補記を追加した。
「必要な属性を別途調査して下さい」という元ページの方針どおり、
網羅ではなく押さえどころに絞っている。

詳細

共通の性質

  • キーは大文字小文字を区別しない(値は DBMS 依存)。
  • 同義のキーが複数ある(例: Data Source = Server = Addr)。
  • 値に ;= を含む場合は " または ' で囲む。
  • 各プロバイダに DbConnectionStringBuilder の派生クラスがあり、
    文字列連結ではなくビルダを使うのがエスケープ事故を防ぐ定石。
var b = new SqlConnectionStringBuilder
{
    DataSource = "tcp:example.database.windows.net,1433",
    InitialCatalog = "SampleDb",
    Encrypt = true,
    Authentication = SqlAuthenticationMethod.ActiveDirectoryDefault,
};
using var cn = new SqlConnection(b.ConnectionString);

SQL Server(Microsoft.Data.SqlClient)の主なキー

キー 内容
Data Source / Server ホスト名,ポート または ホスト名\インスタンス名
Initial Catalog / Database 既定のデータベース
Integrated Security=SSPI Windows 統合認証(SQL Server の認証
User ID / Password SQL Server 認証
Authentication Microsoft Entra ID 認証(Active Directory Default 等)
Encrypt 通信の暗号化。4.0 以降は既定 true
TrustServerCertificate サーバ証明書の検証を省略(検証環境向け。本番では使わない)
Connect Timeout 接続確立のタイムアウト(既定 15 秒)
Pooling / Min Pool Size / Max Pool Size 接続プール(既定 有効 / 0 / 100)
Application Name 監視で「どのアプリの接続か」を識別できるようにする
MultipleActiveResultSets MARS。1 接続で複数の DataReader を開く

補足(接続プールは接続文字列単位): 接続プールは
接続文字列が完全一致する単位で作られる。
ユーザ毎に User ID を変える実装(ベース クライアント方式)や、
Application Name を動的に組み立てる実装ではプールが分断され、
接続確立のコストが毎回発生する。
詳細はリソース アクセス ストラテジを参照。

補足(セキュリティ): 接続文字列は資格情報そのものである。

  • ソース管理にパスワードを含む接続文字列を入れない。
  • Integrated Security=SSPI やマネージド ID を使い、
    そもそもパスワードを持たない構成にするのが最善。
  • やむを得ずパスワードを使う場合は、
    環境変数 / Azure Key Vault / ユーザー シークレットから供給する
    .NET Core configを参照)。
  • 例外メッセージやログに接続文字列を出力しない
    SqlConnectionStringBuilderPassword をマスクしない)。

Oracle(ODP.NET)

キー 内容
Data Source tnsnames.ora のネット サービス名、または EZ Connect(host:port/service)、あるいは接続記述子そのもの
User Id / Password ユーザ認証
Pooling / Min Pool Size / Max Pool Size 接続プール
Statement Cache Size 文キャッシュ。既定 0(無効)なので明示すると効くことが多い

参考

必要な属性を別途調査して下さい。


Tags: 移行, データアクセス, ADO.NET

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally