SQL Server接続文字列のトークン「Trusted_Connection」と「IntegratedSecurity」の違いに興味があります(他のデータベース/ドライバーはこれらをサポートしていないと思います)。私はそれらが同等であることを理解しています。
SQL Server接続文字列のトークン「Trusted_Connection」と「IntegratedSecurity」の違いに興味があります(他のデータベース/ドライバーはこれらをサポートしていないと思います)。私はそれらが同等であることを理解しています。
回答:
これらは相互の同義語であり、互換的に使用できます。
.Netには、SQL Server接続文字列を処理して、文字列の一部を構築するためのタイプセーフプロパティを使用するのに非常に便利なSqlConnectionStringBuilderというクラスがあります。このクラスは、同義語の内部リストを保持しているため、ある値から別の値にマップできます。
+ ---------------------- + ------------------------- + | 値| 同義語| + ---------------------- + ------------------------- + | アプリ| アプリケーション名| | 非同期| 非同期処理| | 拡張プロパティ| attachdbfilename | | 初期ファイル名| attachdbfilename | | 接続タイムアウト| 接続タイムアウト| | タイムアウト| 接続タイムアウト| | 言語| 現在の言語| | addr | データソース| | 住所| データソース| | ネットワークアドレス| データソース| | サーバー| データソース| | データベース| 初期カタログ| | trusted_connection | 統合セキュリティ| | 接続寿命| 負荷分散タイムアウト| | ネット| ネットワークライブラリ| | ネットワーク| ネットワークライブラリ| | pwd | パスワード| | persistsecurityinfo | セキュリティ情報を保持する| | uid | ユーザーID | | ユーザー| ユーザーID | | wsid | ワークステーションID | + ---------------------- + ------------------------- +
(Reflectorの助けを借りてコンパイル)
ODBCおよびOleDb接続文字列を処理するための他の同様のクラスがありますが、残念ながら他のデータベースベンダーには何もありません-そのような実装を提供する責任はベンダーのライブラリにあると思います。
それらは同じです。
残念ながら、次のようないくつかのバリエーションがあります。
サーバー/データソース
データベース/初期カタログ
バリエーションの起源はわかりませんが、一部は一般的なものであると思います(データベース中心ではないため、RDBMSに接続する場合とディレクトリサービスに接続する場合など、接続文字列は非常に似ています)。
catalog
はリレーショナルデータベースの命名法の一部であり、RDBMS以外のものを指すものではありません。:それは、このSOの答えに非常によく説明されてstackoverflow.com/questions/7022755/...
それで少し後に、私は名前の衝突の起源を発見しました。トークンのセットがODBCによって使用され、別のセットがOLEDB用に定義されました。従来の理由でSQLServerの場合、これらは引き続き両方を交換可能にサポートします。
Trusted_Connection = trueはODBCであり、Integrated Security = SSPIはOLEDBでした。
私の場合、「Trusted_Connection」と「IntegratedSecurity」の違いを発見しました。Microsoft SQL Server 2005を使用しています。元々はWindowsログオン(Integrated Security = SSPI)を使用していました。しかし、ユーザーIDとパスワードを追加してWindows認証をSQL Server認証に置き換えたところ、SSPIを「False」に置き換えることができませんでした。「マルチステップOLEDB操作で生成されたエラー」が返されました。ただし、「Integrated Security = False」を「Trusted_Connection = no」に置き換えると、機能しました。