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 üç bağlantı dizesi formatını kabul eder: URL, ADO ve ODBC. Üç format da aynı bağlantı parametreleri setini destekler. Uygulamanıza veya dağıtım modelinize en uygun formatı seçin.
İpucu
Yeni Go uygulamaları için URL formatı kullanın. Güvenli kodlama ve programatik yapı için Go net/url paketiyle entegre olur. .NET uygulamalarından bağlantı dizelerini taşırken ADO formatını kullanın ve nokta virgül veya diğer özel karakterler içeren değerler için brace kaçış daha uygun olduğunda ODBC formatını kullanın.
URL biçimi
URL formatı bu sqlserver:// şemayı takip eder ve Go uygulamaları için en yaygın formattır:
sqlserver://username:password@host:port?database=AdventureWorks2025¶m=value
Examples
SQL kimlik doğrulama ile yerel bir varsayılan instance'a bağlanın:
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025
Adlandırılmış örneğe bağlanın:
sqlserver://<user>:<password>@<server>/myinstance?database=AdventureWorks2025
Connect to Azure SQL Veritabanı:
sqlserver://<user>:<password>@<server>.database.windows.net?database=AdventureWorks2025&encrypt=true&TrustServerCertificate=false
Windows authentication'ı kullanın (sadece Windows için):
sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes
Uyarı
URL formatında port varsayılan olarak 1433 olur. Farklı bir port belirtmek için, ana bilgisayardan sonra ekleyin: sqlserver://<server>:1434?database=AdventureWorks2025.
Şifrelerdeki özel karakterler
URL formatında, özel karakterli şifreler yüzde olarak kodlanmalıdır. Kodlama gerektiren yaygın karakterler:
| Karakter | Encoded | Örnek şifre | Kodlanmış form |
|---|---|---|---|
@ |
%40 |
p@ssword |
p%40ssword |
: |
%3A |
p:ssword |
p%3Assword |
/ |
%2F |
p/ssword |
p%2Fssword |
# |
%23 |
p#ssword |
p%23ssword |
% |
%25 |
p%ssword |
p%25ssword |
Otomatik olarak kodlamayı işlemek için kullanılır url.UserPassword() :
u := &url.URL{
Scheme: "sqlserver",
User: url.UserPassword("<user>", "p@ss:word#1"),
Host: "<server>:1433",
}
u.RawQuery = url.Values{"database": {"AdventureWorks2025"}}.Encode()
// Result: sqlserver://<user>:p%40ss%3Aword%231@<server>:1433?database=AdventureWorks2025
ADO formatında yüzde kodlama gerekmiyor. Bir değer nokta virgül içeriyorsa, onu çift tırnak içinde sarın: password="<password>". ODBC formatında, değeri braketlerle sarın: password={<password>}.
ADO formatı
ADO formatı, nokta virgülle ayrılmış key=value çiftler kullanır:
server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025
ADO örnekleri
Bir port numarasıyla bağlanın:
server=<server>;port=1434;user id=<user>;password=<password>;database=AdventureWorks2025
Adlandırılmış örneğe bağlanın:
server=<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Uyarı
ADO formatında server ve port alanları ayrı parametrelerdir. Değere iki nokta ayrılmış server port dahil etmeyin.
ODBC formatı
ODBC formatı, nokta virgülle ayrılmış odbc: çiftlerle preeki key=value kullanır. Özel karakterler içeren değerler braketlerle kaplanabilir:
odbc:server=<server>;user id=<user>;password={<password>};database=AdventureWorks2025
Diş teli kaçıyor
ODBC formatında, nokta virgüllerden, eşit işaretlerinden ve diğer özel karakterlerden kaçmak için bir değeri içine {} sarın. İç tellerin tam anlamıyla } bir kısmını eklemek için, bunu iki katına çıkarın:
odbc:password={my}}password}
Genel parametreler
Aşağıdaki parametreler üç formatın tamamında paylaşılmıştır:
| Parametre | Aliases | Description |
|---|---|---|
user id |
user |
SQL Server giriş adı. |
password |
- | SQL Server giriş şifresi. |
database |
- | Hedef veritabanı adı. |
connection timeout |
- | Giriş süresi saniyeler içinde. Sürücü varsayılan 0, bu da sonsuz olarak bekler. Bağlantı ve sorgulama zamanlarını kontrol etmek için Go bağlamlarını kullanmayı tercih edin. |
dial timeout |
- | Ağ arama süresi saniyelerde. Sürücü varsayılan olarak kayıtlı protokollere dayanır. Süresiz beklemeye ayarlandı 0 . |
encrypt |
- | Şifreleme modu: strict, true/mandatory,false/optional , . disable Atlandığında, varsayılan olarak false/optional. Azure SQL ve production bağlantıları için açıkça ayarlanencrypt=true. |
TrustServerCertificate |
- | Sertifika doğrulamasını atlayın. Belirtildiğindeencrypt, varsayılan değer 'dir.false Atlandığındaencrypt, varsayılan değer .true Üretim ve Azure SQL bağlantıları için kullanılırfalse. |
app name |
- | Uygulama adı sunucuya iletilir. |
authenticator |
- | Özel kimlik doğrulama cihazı. Paket tarafından dahili olarak kullanılır azuread . |
Bağlantı seçeneklerinin tam listesi için Bağlantı seçenekleri bölümüne bakınız.
Kodda bağlantı dizileri oluştur
Ham dizeleri birleştirmek yerine bağlantı dizelerini programlayıcı olarak oluşturmak için type veya url.URL struct kullanınmsdsn.Config. Bu yaklaşım, enjeksiyon ve kodlama sorunlarını önler.
URL oluşturucu
Standart kütüphaneden güvenli bir şekilde bağlantı dizesi oluşturmak için kullanınurl.URL:
import "net/url"
query := url.Values{}
query.Add("database", "AdventureWorks2025")
query.Add("encrypt", "true")
query.Add("TrustServerCertificate", "false")
u := &url.URL{
Scheme: "sqlserver",
User: url.UserPassword("<user>", "<password>"),
Host: "<server>.database.windows.net:1433",
RawQuery: query.Encode(),
}
connString := u.String()
NewConnectorConfig
NewConnectorConfig Yapılandırılmış yapılandırma için kullanın, msdsn.Config özellikle özel bir çevirici veya SessionInitSQLaçık TLS ayarları yapmanız gerektiğinde :TrustServerCertificate
import (
"database/sql"
"github.com/microsoft/go-mssqldb"
"github.com/microsoft/go-mssqldb/msdsn"
)
config := msdsn.Config{
Host: "<server>",
Port: 1433,
Database: "AdventureWorks2025",
TrustServerCertificate: false,
}
connector := mssql.NewConnectorConfig(config)
db := sql.OpenDB(connector)
Eğer hala yer tutucuları yeniden yazan ? modifikasyonlu mssql sürücü adı davranışına bağımlıysanız, konnektör oluştururken yerine NewConnectorConfig kullanınNewConnectorWithProcessQueryText.