web-dev-qa-db-ja.com

接続文字列のTrusted_ConnectionとIntegrated Securityの違いは何ですか?

SQL Server接続文字列のトークン "Trusted_Connection"と "Integrated Security"の違い(他のデータベース/ドライバーはこれらをサポートしていないと思います)。それらが同等であることを理解しています。

67
Peter Oehlert

これらは相互の同義語であり、同じ意味で使用できます。

.Netには、 SqlConnectionStringBuilder というクラスがあります。これは、タイプセーフを使用してSQL Server接続文字列を処理するのに非常に便利です。文字列の一部を構築するプロパティ。このクラスは同義語の内部リストを保持するため、ある値から別の値にマッピングできます。

 + ---------------------- + --------------------- ---- + 
 |価値|同義語| 
 + ---------------------- + ------------------- ------ + 
 |アプリ|アプリケーション名| 
 |非同期|非同期処理| 
 |拡張プロパティ| attachdbfilename | 
 |初期ファイル名| attachdbfilename | 
 |接続タイムアウト|接続タイムアウト| 
 |タイムアウト|接続タイムアウト| 
 |言語|現在の言語| 
 | addr |データソース| 
 |住所|データソース| 
 |ネットワークアドレス|データソース| 
 |サーバー|データソース| 
 |データベース|初期カタログ| 
 | trusted_connection |統合セキュリティ| 
 |接続寿命|ロードバランスタイムアウト| 
 |ネット|ネットワークライブラリ| 
 |ネットワーク|ネットワークライブラリ| 
 | pwd |パスワード| 
 | persistsecurityinfo |セキュリティ情報を保持する| 
 | uid |ユーザーID | 
 |ユーザー|ユーザーID | 
 | wsid |ワークステーションID | 
 + ---------------------- + ------------------ ------- + 

(Reflectorの助けを借りてコンパイル)

[〜#〜] odbc [〜#〜] および OleDb 接続文字列を処理するための他の同様のクラスがありますが、残念ながら他のデータベースベンダーには何もありません- onusは、そのような実装を提供するベンダーのライブラリにあります。

82
adrianbanks

それらは同じです。

残念ながら、次のようないくつかのバリエーションがあります。

サーバー/データソース

データベース/初期カタログ

バリエーションの起源は定かではありませんが、一部は一般的なものであると想定しています(データベース中心ではないため、RDBMSに接続する場合とディレクトリサービスに接続する場合の接続文字列は非常に似ています)

9
Cade Roux

それで少し後に、名前の衝突の起源を発見しました。トークンのセットはODBCとOLEDBに定義された別のセットで使用されていました。レガシーな理由からSql Serverの場合、両方を互換的にサポートしています。

Trusted_Connection = trueはODBCおよびIntegrated Security = SSPIはOLEDBでした。

2
Peter Oehlert

私の場合、「Trusted_Connection」と「Integrated Security」の違いを発見しました。 Microsoft SQL Server 2005を使用しています。元々はWindowsログオンを使用していました(Integrated Security = SSPI)。しかし、ユーザーIDとパスワードを追加するSQL Server認証によってWindows認証を置き換えた場合、SSPIを「False」に置き換えることができませんでした。 「マルチステップOLE DB操作で生成されたエラー」が返されました。ただし、「Integrated Security = False」を「Trusted_Connection = no」に置き換えると、機能しました。