go-mssqldbの新しいこと

この記事では、 go-mssqldb ドライバーの各リリースにおける重要な変更点を挙げています。 microsoft/go-mssqldbリポジトリはdenisenkom/go-mssqldbのフォークです。 この記事では、Microsoftフォークで公開されたリリースのみを掲載しており、v0.16.0から始まるものです。 完全な変更ログについては、GitHubのリリースページをご覧ください。

Note

バージョン番号は連続していないものもあります。 例えば、バージョンv1.2.0からv1.4.0までは一度も公開されていません。 バージョンジャンプはMicrosoftフォークの実際のリリース履歴を反映しています。

v1.11.0(2026年8月)

  • ADO.NET 接続文字列同義語を追加しました。 ADO形式の接続文字列は、 Data SourceInitial CatalogConnect TimeoutUIDなどの代替キーワードの綴りも受け入れています。 詳細については、 go-mssqldb 接続文字列を参照してください。
  • NTLM チャレンジ、PRELOGIN オプションのオフセットまたは長さ、ならびに SQL Server Browser の専用管理者接続 (DAC) 応答を解析する際に、不正なサーバー応答によって発生する panic を修正しました。
  • 部分的長さプレフィックス付き(PLP)値の初期バッファ割り当ての上限を設定しました。
  • 一括コピー操作で、テーブル名と ORDER 列を引用符で囲みました。
  • すべての connect() エラーパスでTCP接続を閉じました。
  • float64 列に対して を返しました。
  • ストアドプロシージャ呼び出しを検出した際に REVERT を組み込みコマンドとして認識しました。
  • URLデータソース名のNTLMのURLエンコーディングを明確にしました。
  • エンドポイントとAllowedLocationsで使われていたAzure Key Vault URLからポートを剥離しました。
  • 廃止された reflect.SliceHeaderunsafe.Sliceに置き換えました。
  • ASCIIのみのデータに対して高速な経路を備えた文字セット復号性能の向上。

v1.10.0(2026年4月)

  • データベースミラーリングフェイルオーバー用のパラメータFailoverPartnerSPN 接続文字列追加しました。
  • NewConnectorWithProcessQueryTextドライバー名との互換性のためのmssql機能を追加しました。
  • 日付と時刻パラメータにnullable civil 型(NullDateNullTimeNullDateTime)を追加しました。
  • driver.DriverContext互換性のためにdatabase/sqlインターフェースを実装しました。
  • XACT_ABORTが有効になったときにサイレント自動コミットを防ぐためにサーバーで中止されたトランザクションを検出しました。
  • トークンドレイン中の Rows.Close() のサーバーエラーが表面化しました。
  • トリガーを持つテーブルから返されるTDSトークン COLINFO および TABNAME を処理しました。
  • interface{}ではなくsql_variant列のスキャンタイプnil返されました。
  • readCancelConfirmation がコンテキストのキャンセルを尊重するようにしました。
  • msdsn.Config における TrustServerCertificate の漏洩と URL の往復通信。
  • 接続文字列解析エラーから認証情報をサニティ化しました。
  • ARM64 Windowsで名前付きパイププロトコルのサポートを許可しました。

v1.9.8(2026年3月)

  • govulncheck の検出事項を解消するため、依存関係を更新しました。

v1.9.7(2026年2月)

  • 認証のための拡張保護(EPA)サポートが追加されました。
  • ポインタ受信機を columnStructに使用することで性能が向上し、メモリコピー数を減らしました。
  • 列の一括コピー時のエスケープ処理を修正しました。
  • バッチパッケージにおける stateSep の処理を修正しました。

v1.9.6(2026年1月)

  • TLS証明書検証のバイト比較用 serverCertificate 接続パラメータを追加しました。
  • golang.org/x/crypto 依存関係を更新しました。

v1.9.4(2025年11月)

  • トランザクションロールバック中の固定注意パケット処理。
  • 指定されたパイプおよび共有メモリプロトコルは、対応プラットフォームに限定されました。

v1.9.3(2025年9月)

  • 失敗時の一括コピーFMTONLYのリセットを修正しました。
  • 接続確立時のTLSハンドシェイクパケットのフラッシュ処理に関する問題を修正しました。
  • ADOスタイルの接続文字列における二重引用符値のサポートが追加されました。

v1.8.2(2025年5月)

  • 接続文字列のパスワードフィールドエイリアスとして Pwd 認識されました。
  • COMMITROLLBACKを認識された組み込みコマンドとして追加しました。

v1.8.0(2024年12月)

  • hierarchyidgeometrygeographyのユーザー定義型(UDT)サポートが追加されました。
  • 事前ログインおよびlogin7パケットのトレースデータを追加しました。
  • データベース名が間違っている場合、接続は閉じられません。
  • azidentity を v1.6.0 に更新しました。

v1.7.2(2024年5月)

  • Always Encryptedの一括コピーにおけるnullable型のサポートを固定しました。
  • Entra 認証スコープの処理を修正しました。

v1.7.1(2024年4月)

  • columnencryption接続パラメータでAlways Encryptedを実装しました。
  • Azure Key Vault (akv) の列暗号化キー プロバイダーを追加しました。
  • FedAuthのタイプ ActiveDirectoryDeviceCodeActiveDirectoryAzCli を追加しました。
  • TDS 8.0モードで encrypt パラメータの追加値を受け入れました。
  • DER証明書のサポートを追加しました。
  • 接続パラメータ multisubnetfailover 追加しました。
  • 環境変数を通じてKerberos(krb5)の設定を許可しました。
  • ログイン時にパスワード変更を実装しました。
  • LCIDからコードページへのマッピングを固定しました。
  • 文字列出力パラメーターの切り捨て問題を修正しました。
  • UniqueIdentifier Scan()NULL値の処理を修正しました。
  • 固定された名前付きパイプ経路処理。

v1.7.0(2024年2月)

  • JSONとテキストマーシャリングをサポートする NullUniqueIdentifier タイプを追加しました。

v1.6.0(2023年8月)

  • TDS 8.0のサポートを encrypt=strictに追加しました。

v1.5.0(2023年8月)

  • 名前付きパイプ接続用の npipe パッケージをベンダーに出しました。
  • DAC(専用管理者接続)ポートブラウザのサポートを追加しました。
  • UniqueIdentifier MarshalTextUnmarshalJSONの方法を追加しました。
  • カスタムダイヤラーでローカルDNS解決を有効にしました。
  • mipsmipsel のビルドを修正しました。

v1.1.0(2023年6月)

  • DACポートブラウザサービスを追加しました。

v0.16.0(2022年8月) - 初のMicrosoftフォークリリース

  • Microsoft Entra 認証向けにazidentity v1.0 へ移行しました。
  • TLSの最低バージョンを強制するための接続パラメータ tlsmin 追加しました。