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ń.
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 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 - Włącz awaryjne przełączanie wielopodsieci dla grup dostępności AlwaysOn.

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,/falseoptional , . 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.2. 1.31.1

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.