Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A go-mssqldb meghajtó támogatja az SQL Server hitelesítést, Windows integrált hitelesítést (SSPI), NTLM-et és Kerberost. Ez a cikk minden módszert bemutat kapcsolati karakterlánc példákkal és kódmintákkal.
Microsoft Entra ID hitelesítésért lásd: Microsoft Entra ID hitelesítés.
Hitelesítési módszer kiválasztása
Használd a legerősebb módszert, amely illeszkedik a környezetedhez és az identitásplatformodhoz:
| Ezt a sorrendet részesítem előnyben | Módszer | Akkor használja, ha |
|---|---|---|
| 1 | Microsoft Entra ID | Azure SQL-hez csatlakozol, és használhatsz menedzselt identitást, munkaterhelés identitást vagy más Entra folyamatot jelszó tárolása nélkül. |
| 2 | Windows integrált hitelesítés (SSPI) | Az alkalmazásod Windows-on fut, és közvetlenül a jelenlegi Windows identitást tudja használni. |
| 3 | Kerberos | Linuxot vagy macOS-t használsz, és már vannak Kerberos-jegyeid, kulcstábláid vagy egy felügyelt tartományi környezeted. |
| 4 | NTLM | Domain hitelesítésre van szükséged, de a Kerberos nem elérhető vagy praktikus sem. |
| 5 | SQL Server hitelesítés | Nincs integrált identitáslehetőség, és SQL bejelentkezést és jelszót kell használni. |
Ha több módszer is működik, inkább azt válassza, amely elkerüli a hosszú életű titkokat, és illeszkedik a host platform natív identitásrendszeréhez.
SQL Server hitelesítés
Az SQL Server hitelesítése bejelentkezési nevet és jelszót használ, amely az SQL Server-ben tárolt. Adja meg a user id és password paramétereket:
URL-formátum
Megjegyzés:
URL-kapcsolati láncok esetén a felhasználónévben vagy jelszóban speciális karaktereket kódolj százalékos szinten. A Windows-hitelesítéshez használt felhasználónevekben a %5C karaktert használják tartományelválasztóként, például sqlserver://DOMAIN%5Cusername:password@host. Az ADO és ODBC kapcsolódási láncoknál használjuk a literális DOMAIN\username formát.
Megadja a felhasználónevet és jelszót az URL-ben:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true
ADO formátum
Használd az user id és password billentyűket egy ADO-stílusú kapcsolati karakterlánc-ben:
server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025;Encrypt=true
Kódrészlet
Csatlakozz SQL Server hitelesítéshez, és ellenőrizd a kapcsolatot:
package main
import (
"database/sql"
"log"
_ "github.com/microsoft/go-mssqldb"
)
func main() {
db, err := sql.Open("sqlserver",
"sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true")
if err != nil {
log.Fatal(err)
}
defer db.Close()
if err = db.Ping(); err != nil {
log.Fatal(err)
}
}
Windows integrált hitelesítés (SSPI)
Windows rendszeren az illesztőprogram az SSPI-t (Security Support Provider Interface) használja a jelenlegi Windows-felhasználó hitelesítő adataival történő hitelesítéshez. A kapcsolati karakterlánc számára nem kell felhasználónév vagy jelszó.
sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes&encrypt=true
Megjegyzés:
A Windows integrált hitelesítése SSPI-n keresztül csak akkor működik, ha a Go alkalmazás Windows-on fut, és a jelenlegi felhasználó hozzáfér az SQL Server példányhoz.
NTLM-hitelesítés
Az NTLM hitelesítés minden platformon működik (Windows, Linux és macOS). Adjon meg egy tartománynévvel megadott felhasználónevet és jelszót:
NTLM URL formátum
URL-kódolja a(z) DOMAIN\<user> karakterláncban lévő fordított perjelet így: %5C
sqlserver://DOMAIN%5C<user>:<password>@<server>?database=AdventureWorks2025&encrypt=true
Megjegyzés:
URL-formátumban a DOMAIN\<user> fordított törtjelet URL-kódolni kell %5C formában.
NTLM ADO formátum
A felhasználónévben szereplő fordított perjel azt jelzi az illesztőprogramnak, hogy NTLM-hitelesítést kell használnia:
server=<server>;user id=DOMAIN\<user>;password=<password>;database=AdventureWorks2025;Encrypt=true
Az illesztőprogram érzékeli a felhasználónévben lévő fordított perjelet, és automatikusan az NTLM-et használja.
Kerberos-hitelesítés
A Kerberos hitelesítés működik Linuxon és macOS-en, ha a rendszer érvényes Kerberos konfigurációval rendelkezik. Az illesztőprogram krb5 a csomagot használja Kerberos hitelesítésre. Három módszer van a hitelesítés megadására.
Prerequisites
- Egy érvényes
krb5.conffájl (alapértelmezett út:/etc/krb5.conf). - Az SQL Server-nek regisztrált Szolgáltatási Főnévvel (SPN) kell rendelkeznie.
1. módszer: Keytab fájl
Egy keytab fájl titkosított Kerberos fő kulcsokat tartalmaz. Megadja a keytab fájl útvonalát és a felhasználó tartományát:
sqlserver://<user>@MYREALM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&krb5-keytabfile=/path/to/user.keytab&encrypt=true
2. módszer: Hitelesítési gyorsítótár
Használjon egy meglévő, a(z) kinit által létrehozott Kerberos-hitelesítőadat-gyorsítótárat.
sqlserver://<user>@MYREALM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&krb5-credcachefile=/tmp/krb5cc_1000&encrypt=true
3. módszer: Nyers hitelességek
Add meg a jelszót közvetlenül a kapcsolati karakterlánc-ben. Az illesztőprogram a megadott hitelesítő adatokat használja a Kerberos hitelesítési csere végrehajtására.
sqlserver://<user>@MYREALM:<password>@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&encrypt=true
Kerberos paraméterek
| Paraméter | Default | Description |
|---|---|---|
krb5-configfile |
/etc/krb5.conf |
Út a Kerberos konfigurációs fájlhoz. |
krb5-realm |
- | Kerberos-tartománynév, például MYDOMAIN.COM. |
krb5-keytabfile |
- | Út a keytab fájlhoz. |
krb5-credcachefile |
- | Út a credential cache fájlhoz. |
krb5-dnslookupkdc |
true |
DNS SRV rekordokat használj a KDC megtalálásához. |
krb5-udppreferencelimit |
1 |
Maximális üzenetméret az UDP-ről TCP-re váltás előtt. |
ServerSPN |
- | Felülírd az automatikusan generált SPN-t. |