Go-MSSQLDB bağlantı seçenekleri

Bu makale, sürücü tarafından go-mssqldb kabul edilen tüm bağlantı parametreleri için tam bir referans sağlar. bağlantı dizesi format sözdizimi için bkz. Bağlantı dizileri bölüm.

Sürücü, aşağıdaki tablolardaki takma adları yalnızca ADO format bağlantı dizileri içinde çözer. URL ve ODBC format bağlantı dizileri parametre isimleriyle tam olarak eşleşir, sadece kaplan hariç.

Genel parametreler

Parametre Aliases Default Description
user id user - SQL Server giriş adı.
password - - SQL Server giriş şifresi.
database - - Hedef veritabanı.
connection timeout - 0 Giriş değişimi için süre aşımı. 0 Giriş değişimine zaman aşımına uygulanmaz, ancak ilk ağ bağlantısı ayrı olarak sınırlandırılmıştır dial timeout. Bağlantı ve sorgu zamanlamaları için Go bağlamlarını tercih edin. Otomatik duraklatma etkin olan Azure SQL Veritabanı sunucusuz olduğunda, durdurulmuş veritabanına ilk bağlantı 40613 hatasıyla başarısız olur ve veritabanı devam eder. Daha uzun bir zaman aşımına göre tekrar deneme mantığı ekleyin. Veritabanları genellikle bir dakikadan kısa sürede yeniden başlar. Daha fazla bilgi için bkz. Otomatik duraklatma ve otomatik devam.
dial timeout - 15 x protocol count Ağ arama süresi saniyelerde. 0 kayıtlı protokol başına 15 saniye varsayılan süresi uygulanır, sonsuza kadar beklemek yerine.
encrypt - false Şifreleme modu. Azure SQL her zaman sunucu tarafında şifreleme gerektirir. Şifreleme ve sertifikalar bölümünü incele.
app name - - Başvuru adı giriş kaydına gönderildi.
authenticator - - Özel doğrulama cihazı, harici paketler tarafından kayıtlıdır azuread.

Sunucu ve port

ADO ve ODBC formatlarında, sunucu ve port ayrı parametrelerdir:

Parametre Default Description
server localhost SQL Server ana adı, isteğe bağlı olarak \instance.
port 1433 TCP port numarası.

URL formatında, ana bilgisayarı ve portu doğrudan URL'de belirtin: sqlserver://host:port.

Yük devretme

Parametre Default Description
failoverpartner - Failover partner sunucu ana adı.
failoverpartnerspn - Hizmet Ana Adı (SPN) için yedekleme ortağı için.
failoverport 1433 Failover ortağı için TCP portu.

Ana sunucuya erişilemiyorsa, sürücü otomatik olarak devretme ortağına bağlanmaya çalışır.

Ağ ve performans

Parametre Aliases Default Description
packet size - 4096 TDS paket boyutu bayt cinsinden. Geçerli aralık: 512-32767.
keepAlive - 30 Canlı kalma aralığı saniyelerde. Bir değer, 0 işletim sistemine ertelemek yerine 30 saniyelik varsayılan değeri uygular.
TrustServerCertificate - Bağlı encrypt Ne zaman true, sunucu sertifikası doğrulamasını atlayın. Varsayılan durum, false belirtildiğinde encrypt ve true ne encrypt zaman atlandığında olur. olduğunda encrypt=strictyoksayılır. Üretim için önerilmez.
multisubnetfailover multi subnet failover true DNS ana bilgisayarı birden fazla IP adresine çözdüğünde arama davranışı. DNS birden fazla adres döndürdüğünde true , sürücü tüm çözülmüş uç noktaları paralel olarak atar ve ilk başarılı bağlantıyı kullanır. DNS tek bir adres döndürdüğünde, sürücü onu ardışık olarak arar, böylece true tek IP hedeflerinde güvenlidir. Kullanılabilirlik grubu dinleyicileri, failover kümesi örnekleri ve Azure SQL failover grup dinleyicileri için varsayılan olarak kalsın. Bu sürücü geriye dönük uyumluluk için varsayılan olarak olarak kullanılırtrue; diğer Microsoft SQL sürücüleri ise varsayılan olarak .false

Uygulama amacı

Parametre Değerler Description
ApplicationIntent ReadOnly, ReadWrite Uygulamanın sadece okunma veya okuma-yazma işlemleri için bağlanıp bağlanmadığını belirtir. AlwaysOn sadece okunabilir yönlendirme ile kullanılıyor.

İş istasyonu ve SPN

Parametre Default Description
Workstation ID - Giriş kaydında iş istasyonu adı gönderildi.
ServerSPN - SQL Server için Hizmet Ana Adı. Sadece varsayılan olmayan SPN yapılandırmalarında gereklidir.

Protocol

Parametre Değerler Description
protocol tcp, np, lpc, admin Aktarım protokolü. Protokollere bakınız.
pipe - Adı boru yolu. Sadece .protocol=np

Always Encrypted (Her Zaman Şifreli)

Parametre Default Description
columnencryption Hiçbiri Her Zaman Şifreli Etkinleştirmek için ayarlandı true . Her zaman şifreli bkz.

Şifreleme ve TLS

Parametre Default Description
encrypt Bkz . Ortak parametreler strict(TDS 8.0), true/mandatory,false/optional , . disable
TrustServerCertificate Bağlı encrypt Sertifika doğrulamasını atlayın.true Varsayılan durum, false belirtildiğinde encrypt ve true ne encrypt zaman atlandığında olur. olduğunda encrypt=strictyoksayılır.
certificate Hiçbiri Sertifika zinciri doğrulaması için PEM veya DER sertifika dosyasına giden yol.
serverCertificate Hiçbiri Bayt seviyesinde karşılaştırma için PEM veya DER sertifika dosyasına giden yol (v1.5.0 ve sonrası).
hostnameincertificate Hiçbiri TLS sertifikası doğrulaması sırasında kullanılan ana bilgisayar adını geçersiz kılın.
tlsmin Hiçbiri Minimum TLS sürümü: 1.0, 1.1, 1.2, 1.3.

Ayrıntılı şifreleme rehberliği için Şifreleme ve sertifikalar bölümünü inceleyebilirsiniz.

Günlük bayrakları

Tanı çıkışını kontrol etmek için parametreyi log kullanın. Değerler bitmask bayraklarıdır ve bunları tam sayı değerlerini ekleyerek birleştirebilirsiniz:

Value Description
1 Kayıt hataları
2 İletileri günlüğe kaydetme
4 Log satırları
8 Log SQL ifadeleri
16 Günlük parametreleri
32 Günlük işlemler
64 Log hata ayıklama bilgisi
128 Günlük yeniden denemeler

Örnek: hataları ve SQL ifadelerini kaydetmek için (1 + 8) ayarla log=9 .

Daha fazla bilgi için Loging ve diagnostika bölümünü inceleyin.

Uniqueidentifier sütunları

Sürücü, varsayılan olarak sütunları ham bayt dizileri olarak okur uniqueidentifier . Standart bir GUID formatlı bir dizi elde etmek için, yerine veya mssql.UniqueIdentifieriçine string[]byte tara edin. Sürücü, bağlantı parametreleri üzerinden otomatik GUID dönüşümünü desteklemiyor.

SessionInitSQL

SessionInitSQLbir bağlantı dizesi parametresi değildir. API üzerinden NewConnectorConfig ayarlayın:

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 ifadesi, her yeni bağlantı kurulduktan hemen sonra, bağlantı arayana geri dönmeden önce çalışır.