Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürücü go-mssqldb tamamen bir Go kütüphanesidir ve Linux ile macOS'ta harici C bağımlılıkları olmadan yerel olarak derlenir. Bu makale, kimlik doğrulama ve sertifikalar için platforma özgü yapılandırmayı ele alır.
Installation
Tüm platformlarda kurulum aynıdır:
go get github.com/microsoft/go-mssqldb
ODBC sürücüsü, FreeTDS veya diğer C kütüphanelerine gerek yoktur.
SQL kimlik doğrulaması
SQL kimlik doğrulaması Linux, macOS ve Windows'ta aynı şekilde çalışır:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025
NTLM kimlik doğrulaması
NTLM doğrulaması tüm platformlarda desteklenmektedir. Alan adı nitelikli bir kullanıcı adı verin:
URL biçimi
DOMAIN\user içindeki ters eğik çizgiyi %5C olarak URL kodlayın:
sqlserver://CONTOSO%5C<user>:<password>@<server>:1433?database=mydb
ADO formatı
Kullanıcı adındaki ters eğik çizgi NTLM kimlik doğrulamasını tetikler:
server=<server>;user id=DOMAIN\<user>;password=<password>;database=AdventureWorks2025
Sürücü, kullanıcı adındaki ters çizgiyi algılar ve otomatik olarak NTLM kullanır. Linux veya macOS'ta ek yapılandırma gerekmez.
Kerberos kimlik doğrulama
Linux ve macOS'ta Kerberos kimlik doğrulaması, sürücünün içinde yerleşik paketi krb5 kullanır. Harici kütüphane bağımlılığı yoktur.
Prerequisites
Geçerli bir Kerberos yapılandırma dosyası. Varsayılan yol şudur
/etc/krb5.conf:[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = dc1.mydomain.com }SQL Server örneğinde kayıtlı bir Hizmet Ana Adı (SPN) olmalıdır (örneğin,
MSSQLSvc/<server>.mydomain.com:1433).
Bir keytab ile bağlanın
Keytab dosya yolunu ve Kerberos alemini bağlantı dizesi'de belirtin:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-keytabfile=/etc/<user>.keytab
Bir kimlik kaydı önbelleğiyle bağlantı kurun
Öncelikle, bir bilet alın:
kinit <user>@MYDOMAIN.COM
Sonra önbelleğe alınan kimlik bilgilerini kullanarak bağlanın:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-credcachefile=/tmp/krb5cc_1000
Kerberos parametreleri
| Parametre | Default | Description |
|---|---|---|
krb5-configfile |
/etc/krb5.conf |
Kerberos yapılandırma dosyasına giden yol. |
krb5-realm |
- | Kerberos alemi (örneğin, MYDOMAIN.COM). |
krb5-keytabfile |
- | Keytab dosyasına giden yol. |
krb5-credcachefile |
- | Kimlik bilgisi önbellek dosyasına giden yol. |
krb5-dnslookupkdc |
true |
Anahtar Dağıtım Merkezi'ni (KDC) bulmak için DNS SRV kayıtlarını kullanın. |
krb5-udppreferencelimit |
1 |
TCP'ye geçmeden önce maksimum UDP mesaj boyutu. |
Daha fazla bilgi için SQL Server ve Windows authentication bölümlerine bakınız.
Windows kimlik doğrulaması (SSPI) mevcut değil
Linux ve macOS'ta Windows entegre kimlik doğrulaması (SSPI / trusted_connection=yes) mevcut değil. Aşağıdaki seçeneklerden birini kullanın:
| Method | Bağlantı dizesi |
|---|---|
| NTLM | sqlserver://DOMAIN%5Cuser:password@host?database=db |
| Kerberos (keytab) | sqlserver://user@REALM@host?database=db&krb5-realm=REALM&krb5-keytabfile=/path |
| Kerberos (önbellek) | sqlserver://user@REALM@host?database=db&krb5-realm=REALM&krb5-credcachefile=/path |
| SQL kimlik doğrulaması | sqlserver://user:password@host?database=db |
| Microsoft Entra Kimliği |
sqlserver://host?database=db&fedauth=ActiveDirectoryDefault&encrypt=true&TrustServerCertificate=false (azuresql sürücüsünü kullanın) |
Sertifika yapılandırması
Linux ve macOS'ta, or certificate parametreleriyle serverCertificate kullanılan TLS sertifikaları PEM kodlu dosyalar olmalıdır. Sürücü, doğrudan Go'nun paketini crypto/tls kullanarak bunları okur.
Sistem güven deposu
Sürücü, işletim sisteminin varsayılan sertifika güven deposunu kullanır. Linux'ta bu güven mağazası genellikle /etc/ssl/certs/ veya /etc/pki/tls/certs/adresinde bulunur. macOS'ta sistem anahtarlığı kullanılır.
Sistem deposuna özel bir CA sertifikası eklemek için:
Ubuntu/Debian:
sudo cp myca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
RHEL/Fedora:
sudo cp myca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
macOS:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain myca.crt
Alternatif olarak, certificate bağlantı parametresini kullanarak CA sertifikasını sistem deposunu değiştirmeden doğrudan belirtebilirsiniz:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true&certificate=/path/to/ca-cert.pem