本記事では、 go-mssqldb ドライバが受け入れるすべての接続パラメータの完全な参考文献を提供します。 接続文字列 フォーマットの構文については、Connection strings を参照してください。
共通パラメーター
| パラメーター | Aliases | Default | Description |
|---|---|---|---|
user id |
user |
- | SQL Serverのログイン名。 |
password |
- | - | SQL Serverログイン用のパスワード。 |
database |
- | - | ターゲットデータベース。 |
connection timeout |
- | 0 |
ログインタイムアウトは数秒で完了します。
0 無限に待つ。 接続やクエリのタイムアウトにはGoコンテキストを好む。 |
dial timeout |
- | 15 x protocol count |
ネットワークダイヤルタイムアウトは数秒で完了します。
0 無限に待つ。 ドライバーは登録プロトコルごとに15秒のデフォルト設定です。 |
encrypt |
- | false |
暗号化モード。 Azure SQLは常にサーバー側で暗号化が必要です。 暗号化 と証明書を参照してください。 |
app name |
- | - | ログイン記録にアプリケーション名が送信されました。 |
authenticator |
- | - |
azureadなどの外部パッケージで登録されるカスタム認証器。 |
サーバーとポート
ADOおよびODBC形式では、サーバーとポートは別々のパラメータです:
| パラメーター | Default | Description |
|---|---|---|
server |
localhost |
ホスト名SQL Server、オプションで\instanceも含めます。 |
port |
1433 |
TCPポート番号。 |
URL形式では、ホストとポートをURLに直接指定してください: sqlserver://host:port。
フェールオーバー
| パラメーター | Default | Description |
|---|---|---|
failoverpartner |
- | フェイルオーバーパートナーサーバーのホスト名。 |
failoverpartnerspn |
- | フェイルオーバーパートナーのサービスプリンシパル名(SPN)です。 |
failoverport |
1433 |
フェイルオーバーパートナー用のTCPポート。 |
プライマリサーバーにアクセスできない場合、ドライバーはフェイルオーバーパートナーへの接続を自動的に試みます。
ネットワークとパフォーマンス
| パラメーター | Default | Description |
|---|---|---|
packet size |
4096 |
TDSパケットサイズ(バイト単位)。 有効範囲:512-32767。 |
keepAlive |
30 |
生存維持間隔は数秒で。
0 OSのデフォルトを使用しています。 |
TrustServerCertificate |
依存先 encrypt |
trueたらサーバー証明書検証をスキップしてください。 デフォルトはencryptが指定されている場合false、encryptが省略されるとtrueとなります。
encrypt=strict場合は無視されます。 運用環境での使用は推奨されません。 |
multisubnetfailover |
- | AlwaysOn可用性グループのマルチサブネットフェイルオーバーを有効にしてください。 |
アプリケーションの意図
| パラメーター | Values | Description |
|---|---|---|
ApplicationIntent |
ReadOnly、ReadWrite |
アプリケーションが読み取り専用か読み書きかを宣言します。 AlwaysOn読み取り専用ルーティングで使用。 |
ワークステーションとSPN
| パラメーター | Default | Description |
|---|---|---|
Workstation ID |
- | ログイン記録にワークステーション名が送信されました。 |
ServerSPN |
- | SQL Serverのサービスプリンシパル名。 非デフォルトSPN構成でのみ必要です。 |
プロトコル
| パラメーター | Values | Description |
|---|---|---|
protocol |
tcp、np、lpc、admin |
トランスポート プロトコル プロトコルを参照してください。 |
pipe |
- | パイプパスの名前付き。
protocol=npの場合のみ適用されます。 |
常に暗号化されています
| パラメーター | Default | Description |
|---|---|---|
columnencryption |
None | 常に暗号化を有効にするには true に設定してください。 「 常に暗号化されている」を参照してください。 |
暗号化とTLS
| パラメーター | Default | Description |
|---|---|---|
encrypt |
共通パラメータを参照 |
strict (TDS 8.0)、 true/mandatory、 false/optional、 disable。 |
TrustServerCertificate |
依存先 encrypt |
true時は証明書検証を省略してください。 デフォルトはencryptが指定されている場合false、encryptが省略されるとtrueとなります。
encrypt=strict場合は無視されます。 |
certificate |
None | 証明書チェーン検証のためのPEMまたはDER証明書ファイルへのパス。 |
serverCertificate |
None | バイトレベル比較のためのPEMまたはDER証明書ファイルへのパス(v1.5.0以降)。 |
hostnameincertificate |
None | TLS証明書検証時に使用されたホスト名を上書きします。 |
tlsmin |
None | 最低限のTLSバージョン: 1.0、 1.1、 1.2、 1.3。 |
詳細な暗号化ガイダンスについては、「 暗号化と証明書」を参照してください。
ログフラグ
診断出力を制御するには log パラメータを使いましょう。 値はビットマスクフラグであり、整数の値を加算することで組み合わせることができます:
| 価値 | Description |
|---|---|
1 |
ログエラー |
2 |
ログ メッセージ |
4 |
丸太列 |
8 |
SQL ステートメントをログに記録する |
16 |
ログのパラメーター |
32 |
ログ トランザクション |
64 |
ログデバッグ情報 |
128 |
ログリトライ |
例:エラーやSQL文を記録するには、 log=9 (1 + 8)を設定します。
詳細は 「ログと診断」をご覧ください。
ユニーク識別子列
ドライバーはデフォルトで uniqueidentifier 列を生のバイト配列として読み込みます。 標準的なGUID形式の文字列を取得するには、stringや[]byteではなくmssql.UniqueIdentifierにスキャンしてください。 このドライバーは接続パラメータによる自動GUID変換をサポートしていません。
SessionInitSQL
SessionInitSQLは接続文字列パラメータではありません。
NewConnectorConfig APIを通して設定してください:
import (
"database/sql"
"github.com/microsoft/go-mssqldb"
"github.com/microsoft/go-mssqldb/msdsn"
)
config := msdsn.Config{
Host: "<server>",
Port: 1433,
Database: "AdventureWorks2025",
}
connector := mssql.NewConnectorConfig(config)
connector.SessionInitSQL = "SET ANSI_NULLS ON"
db := sql.OpenDB(connector)
SQL文は、新しい接続が確立された直後に実行され、接続が呼び出し元に戻される前に実行されます。