Opcje połączenia go-mssqldb

Ten artykuł zawiera pełne źródło wszystkich parametrów połączenia akceptowanych przez sterownik.go-mssqldb Aby uzyskać składnię formatu parametry połączenia, zobacz Connection strings.

Wspólne parametry

Parameter Aliases Default Description
user id user - Nazwa logowania do SQL Server.
password - - Hasło do logowania do SQL Server.
database - - Baza docelowa.
connection timeout - 0 Czas logowania trwa kilka sekund. 0 czeka bez końca. Preferuj konteksty Go dla limitów łączeń i zapytań. W przypadku serwerlessa Azure SQL Database z włączoną automatyczną pauzą, pierwsze połączenie z wstrzymaną bazą danych kończy się błędem 40613, podczas gdy baza wraca. Dodaj logikę powtórek zamiast dłuższego timeoutu. Bazy danych zazwyczaj wracają w mniej niż minutę. Zobacz Auto-pauza i auto-resume.
dial timeout - 15 x protocol count Limit wybrania sieci w kilka sekund. 0 czeka bez końca. Sterownik domyślnie przyjmuje 15 sekund na jeden zarejestrowany protokół.
encrypt - false Tryb szyfrowania. Azure SQL zawsze wymaga szyfrowania po stronie serwera. Zobacz Szyfrowanie i certyfikaty.
app name - - Nazwa aplikacji wysłana w rejestrze logowania.
authenticator - - Niestandardowy uwierzytelniacz zarejestrowany przez zewnętrzne pakiety, takie jak azuread.

Serwer i port

W formatach ADO i ODBC serwer i port to oddzielne parametry:

Parameter Default Description
server localhost Nazwa hosta SQL Server, opcjonalnie zawierająca \instance.
port 1433 Numer portu TCP.

W formacie URL należy określić hosta i port bezpośrednio w URL: sqlserver://host:port.

Tryb failover

Parameter Default Description
failoverpartner - Nazwa hosta partnera awaryjnego.
failoverpartnerspn - Nazwa Principal Service (SPN) dla partnera awaryjnego.
failoverport 1433 Port TCP dla partnera awaryjnego.

Gdy główny serwer jest nieosiągalny, sterownik próbuje automatycznie połączyć się z partnerem awaryjnym.

Sieć i wydajność

Parameter Aliases Default Description
packet size - 4096 Rozmiar pakietu TDS w bajtach. Ważny zakres: 512-32767.
keepAlive - 30 Czas na utrzymanie czasu w kilka sekund. 0 używa domyślnego systemu operacyjnego.
TrustServerCertificate - Zależy od encrypt Gdy true, pomiń walidację certyfikatu serwera. Domyślnie jest to, false gdy encrypt jest określone, a true gdy encrypt jest pomijane. Ignorowane, gdy encrypt=strict. Niezalecane w środowisku produkcyjnym.
multisubnetfailover multi subnet failover true Zachowanie wybierania, gdy DNS rozwiązuje hosta na wiele adresów IP. Gdy true and DNS zwraca wiele adresów, sterownik wybiera wszystkie rozwiązane punkty końcowe równolegle i korzysta z pierwszego udanego połączenia. Gdy DNS zwraca pojedynczy adres, sterownik wybiera go sekwencyjnie, co jest bezpieczne true dla celów z pojedynczym IP. Zachowaj domyślne ustawienia dla słuchaczy grup dostępności, instancji klastrów awaryjnego oraz Azure SQL do przełączania grupowego. Ten sterownik domyślnie używa ze true względu na kompatybilność wsteczną; inne sterowniki Microsoft SQL domyślnie używają .false

Intencja aplikacji

Parameter Values Description
ApplicationIntent ReadOnly, ReadWrite Deklaruje, czy aplikacja łączy się tylko do odczytu czy do odczytu. Używa się z routingiem tylko do odczytu AlwaysOn.

Stacja robocza i SPN

Parameter Default Description
Workstation ID - Nazwa stacji roboczej wysłana w rejestrze logowania.
ServerSPN - Nazwa Principal Service dla SQL Server. Wymagane tylko w konfiguracjach SPN niedomyślnych.

Protokół

Parameter Values Description
protocol tcp np, , , lpcadmin Protokół transportowy. Zobacz Protokoły.
pipe - Nazwana ścieżka rury. Dotyczy tylko wtedy, gdy protocol=np.

Zawsze szyfrowane

Parameter Default Description
columnencryption Żadne Ustaw na true włączone Zawsze szyfrowane. Zobacz Zawsze szyfrowane.

Szyfrowanie i TLS

Parameter Default Description
encrypt Zobacz parametry wspólne strict(TDS 8.0), true/mandatory,false/optional , . disable
TrustServerCertificate Zależy od encrypt Pomiń walidację certyfikatu, gdy true. Domyślnie jest to, false gdy encrypt jest określone, a true gdy encrypt jest pomijane. Ignorowane, gdy encrypt=strict.
certificate Żadne Ścieżka do pliku certyfikatu PEM lub DER do walidacji łańcucha certyfikatów.
serverCertificate Żadne Ścieżka do pliku certyfikatu PEM lub DER do porównania na poziomie bajtów (v1.5.0 i nowsze).
hostnameincertificate Żadne Nadpisz nazwę hosta używaną podczas walidacji certyfikatu TLS.
tlsmin Żadne Minimalna wersja TLS: 1.0, , , 1.1. 1.21.3

Szczegółowe wskazówki dotyczące szyfrowania znajdują się w artykule Szyfrowanie i certyfikaty.

Flagi z kłodami

Użyj parametru log do sterowania wynikiem diagnostycznym. Wartości to flagi bitmaski i można je łączyć, dodając wartości całkowite:

Value Description
1 Błędy logu
2 Komunikaty dziennika
4 Rzędy z bali
8 Rejestrowanie instrukcji SQL
16 Parametry dziennika
32 Transakcje logiczne
64 Informacje o debugowaniu logów
128 Próby logów

Przykład: do logowania błędów i instrukcji SQL ustaw log=9 (1 + 8).

Więcej informacji można znaleźć w sekcji Logowanie i diagnostyka.

kolumny uniqueidentifier

Sterownik domyślnie odczytuje uniqueidentifier kolumny jako surowe tablice bajtów. Aby uzyskać standardowy ciąg w formacji GUID, przeskanuj do zamiast mssql.UniqueIdentifierstring lub []byte. Sterownik nie obsługuje automatycznej konwersji GUID przez parametry połączenia.

SessionInitSQL

SessionInitSQLnie jest parametrem parametry połączenia. Ustaw to przez 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)

Instrukcja SQL uruchamia się natychmiast po nawiązaniu każdego nowego połączenia, zanim połączenie zostanie zwrócone do wywołującego.