Opsi koneksi go-mssqldb

Artikel ini memberikan referensi lengkap untuk semua parameter koneksi yang diterima oleh go-mssqldb driver. Untuk sintaks format string koneksi, lihat String koneksi.

Parameter umum

Parameter Aliases Default Description
user id user - Nama login SQL Server.
password - - Kata sandi untuk login SQL Server.
database - - Target database.
connection timeout - 0 Batas waktu login dalam hitungan detik. 0 menunggu tanpa batas waktu. Lebih suka konteks Go untuk batas waktu koneksi dan kueri.
dial timeout - 15 x protocol count Batas waktu panggilan jaringan dalam hitungan detik. 0 menunggu tanpa batas waktu. Driver default ke 15 detik per protokol terdaftar.
encrypt - false Mode enkripsi. Azure SQL selalu memerlukan enkripsi sisi server. Lihat Enkripsi dan sertifikat.
app name - - Nama aplikasi dikirim dalam catatan login.
authenticator - - Pengautentikasi kustom yang didaftarkan oleh paket eksternal seperti azuread.

Server dan port

Dalam format ADO dan ODBC, server dan port adalah parameter terpisah:

Parameter Default Description
server localhost Nama host SQL Server, secara opsional termasuk \instance.
port 1433 Nomor port TCP.

Dalam format URL, tentukan host dan port langsung di URL: sqlserver://host:port.

Failover

Parameter Default Description
failoverpartner - Nama host server mitra failover.
failoverpartnerspn - Nama Prinsipal Layanan (SPN) untuk mitra failover.
failoverport 1433 Port TCP untuk mitra failover.

Saat server utama tidak dapat dijangkau, driver mencoba terhubung ke mitra failover secara otomatis.

Jaringan dan kinerja

Parameter Default Description
packet size 4096 Ukuran paket TDS dalam byte. Rentang yang berlaku: 512-32767.
keepAlive 30 Interval tetap hidup dalam hitungan detik. 0 menggunakan default OS.
TrustServerCertificate Tergantung pada encrypt Kapan true, lewati validasi sertifikat server. Defaultnya adalah false kapan encrypt ditentukan dan true kapan encrypt dihilangkan. Diabaikan ketika encrypt=strict. Tidak disarankan untuk penggunaan di lingkungan produksi.
multisubnetfailover - Aktifkan failover multi-subnet untuk Grup Ketersediaan AlwaysOn.

Niat aplikasi

Parameter Values Description
ApplicationIntent ReadOnly, ReadWrite Mendeklarasikan apakah aplikasi terhubung untuk operasi baca-saja atau baca-tulis. Digunakan dengan perutean baca-saja AlwaysOn.

Workstation dan SPN

Parameter Default Description
Workstation ID - Nama stasiun kerja dikirim dalam catatan login.
ServerSPN - Nama Perwakilan Layanan untuk SQL Server. Hanya diperlukan dalam konfigurasi SPN non-default.

Protokol

Parameter Values Description
protocol tcp,np,lpc,admin Protokol transportasi. Lihat Protokol.
pipe - Jalur pipa bernama. Hanya berlaku ketika protocol=np.

Selalu Terenkripsi

Parameter Default Description
columnencryption None Atur ke true untuk mengaktifkan Selalu Terenkripsi. Lihat Selalu Dienkripsi.

Enkripsi dan TLS

Parameter Default Description
encrypt Lihat Parameter umum strict(TDS 8.0), true/mandatory, , false. disable/optional
TrustServerCertificate Tergantung pada encrypt Lewati validasi sertifikat saat true. Defaultnya adalah false kapan encrypt ditentukan dan true kapan encrypt dihilangkan. Diabaikan ketika encrypt=strict.
certificate None Jalur ke file sertifikat PEM atau DER untuk validasi rantai sertifikat.
serverCertificate None Jalur ke file sertifikat PEM atau DER untuk perbandingan tingkat byte (v1.5.0 dan yang lebih baru).
hostnameincertificate None Mengganti nama host yang digunakan selama validasi sertifikat TLS.
tlsmin None Versi TLS minimum: 1.0, 1.1, , 1.2. 1.3

Untuk panduan enkripsi terperinci, lihat Enkripsi dan sertifikat.

Bendera log

Gunakan parameter untuk log mengontrol output diagnostik. Nilai adalah bendera bitmask, dan Anda dapat menggabungkannya dengan menambahkan nilai bilangan bulat:

Value Description
1 Catat kesalahan
2 Pesan log
4 Baris log
8 Merekam pernyataan SQL
16 Parameter Pencatatan
32 Mencatat transaksi
64 Informasi debug log
128 Mencatat percobaan ulang

Contoh: untuk mencatat kesalahan dan pernyataan SQL, atur log=9 (1 + 8).

Untuk informasi selengkapnya, lihat Pengelogan dan diagnostik.

Kolom UniqueIdentifier

Driver membaca uniqueidentifier kolom sebagai array byte mentah secara default. Untuk mendapatkan string berformat GUID standar, pindai ke mssql.UniqueIdentifier alih-alih string atau []byte. Driver tidak mendukung konversi GUID otomatis melalui parameter koneksi.

SesiInitSQL

SessionInitSQLbukan parameter string koneksi. Atur melalui 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)

Pernyataan SQL berjalan segera setelah setiap koneksi baru dibuat, sebelum koneksi dikembalikan ke pemanggil.