Aracılığıyla paylaş


SQL Server Yerel İstemcisi'nde doğrulama olmadan şifreleme kullanma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Önemli

SQL Server Native Client (SNAC) ile birlikte gönderilmez:

  • SQL Server 2022 (16.x) ve sonraki sürümleri
  • SQL Server Management Studio 19 ve sonraki sürümleri

YENI uygulama geliştirme için SQL Server Yerel İstemcisi (SQLNCLI veya SQLNCLI11) ve SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) önerilmez.

Yeni projeler için aşağıdaki sürücülerden birini kullanın:

SQL Server Veritabanı Altyapısı'nın (sürüm 2012 ile 2019 arasında) bir bileşeni olarak gelen SQLNCLI için, Destek Yaşam Döngüsü özel durumukonusuna bakın.

SQL Server oturum açma işlemiyle ilişkilendirilmiş ağ paketlerini her zaman şifreler. Başlatıldığında sunucuda hiçbir sertifika sağlanmamışsa, SQL Server oturum açma paketlerini şifrelemek için kullanılan otomatik olarak imzalanan bir sertifika oluşturur.

Otomatik olarak imzalanan sertifikalar güvenliği garanti etmez. Şifreli el sıkışma NT LAN Manager'ı (NTLM) temel alır. Güvenli bağlantı için SQL Server'da doğrulanabilir bir sertifika sağlamalısınız. Aktarım Güvenlik Katmanı (TLS) yalnızca sertifika doğrulaması ile güvenli hale getirilebilir.

Uygulamalar ayrıca bağlantı dizesi anahtar sözcüklerini veya bağlantı özelliklerini kullanarak tüm ağ trafiğinin şifrelenmesini isteyebilir. anahtar sözcükleri ile bir sağlayıcı dizesi kullanılırken ODBC ve OLE DB için "Şifrele" veya ile IDbInitialize::InitializeIDataInitializebir başlatma dizesi kullanılırken ADO ve OLE DB için "Veri için Şifrelemeyi Kullan" anahtar sözcükleridir. Bu, SQL Server Configuration Manager tarafından Protokol Şifrelemesini Zorla seçeneği kullanılarak ve istemci şifrelenmiş bağlantılar istemek üzere yapılandırılarak da yapılandırılabilir. Varsayılan olarak, bir bağlantı için tüm ağ trafiğinin şifrelenmesinin sunucuda bir sertifika sağlanması gerekir. İstemcinizi sunucudaki sertifikaya güvenecek şekilde ayarlayarak ortadaki adam saldırılarına karşı savunmasızsınız. Sunucuya doğrulanabilir bir sertifika dağıtırsanız, sertifikaya FALSEgüvenme hakkındaki istemci ayarlarını olarak değiştirdiğinizden emin olun.

Bağlantı dizesi anahtar sözcükleri hakkında bilgi için bkz. SQL Server Yerel İstemcisi ile Bağlantı Dizesi Anahtar Sözcüklerini Kullanma.

Sunucuda bir sertifika sağlanmadığında şifrelemenin kullanılmasını etkinleştirmek için SQL Server Configuration Manager hem Protokol Şifrelemesini Zorla hem de Güven Sunucusu Sertifikası seçeneklerini ayarlamak için kullanılabilir. Bu durumda, sunucuda doğrulanabilir bir sertifika sağlanmadıysa şifreleme doğrulama olmadan otomatik olarak imzalanan bir sunucu sertifikası kullanır.

Uygulamalar şifrelemenin TrustServerCertificate gerçekleştirildiğini garanti etmek için anahtar sözcüğünü veya ilişkili bağlantı özniteliğini de kullanabilir. Uygulama ayarları hiçbir zaman SQL Server İstemci Yapılandırma Yöneticisi tarafından ayarlanan güvenlik düzeyini azaltmaz, ancak bunu güçlendirebilir. Örneğin, istemci için Zorla Protokol Şifrelemesi ayarlı değilse, bir uygulama şifreleme isteğinde bulunabilir. Bir sunucu sertifikası sağlanmamış olsa bile şifrelemeyi garanti etmek için, bir uygulama şifreleme ve TrustServerCertificateisteyebilir. Ancak, istemci yapılandırmasında etkinleştirilmemişse TrustServerCertificate , sağlanan bir sunucu sertifikası hala gereklidir. Aşağıdaki tabloda tüm durumlar açıklanmaktadır:

Zorla Protokol Şifrelemesi istemci ayarı Güven Sunucusu Sertifikası istemci ayarı Bağlantı dizesi/bağlantı özniteliği Veriler için Şifrelemeyi Şifrele/Kullan Bağlantı dizesi/bağlantı özniteliği Güven Sunucusu Sertifikası Sonuç
Hayı Mevcut Değil Hayır (varsayılan) Yoksayıldı Şifreleme gerçekleşmez.
Hayı Mevcut Değil Evet Hayır (varsayılan) Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir, aksi takdirde bağlantı girişimi başarısız olur.
Hayı Mevcut Değil Evet Evet Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir.
Evet Hayı Yoksayıldı Yoksayıldı Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir, aksi takdirde bağlantı girişimi başarısız olur.
Evet Evet Hayır (varsayılan) Yoksayıldı Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir.
Evet Evet Evet Hayır (varsayılan) Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir, aksi takdirde bağlantı girişimi başarısız olur.
Evet Evet Evet Evet Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir.

Dikkat

Yukarıdaki tablo yalnızca farklı yapılandırmalar altındaki sistem davranışı hakkında bir kılavuz sağlar. Güvenli bağlantı için hem istemcinin hem de sunucunun şifreleme gerektirdiğinden emin olun. Ayrıca sunucunun doğrulanabilir bir sertifikası olduğundan ve istemcideki ayarın TrustServerCertificate olarak FALSEayarlandığından emin olun.

SQL Server Yerel İstemci OLE DB Sağlayıcısı

SQL Server Yerel İstemci OLE DB sağlayıcısı, özellik kümesinde uygulanan veri kaynağı başlatma özelliğinin SSPROP_INIT_TRUST_SERVER_CERTIFICATE eklenmesiyle doğrulama olmadan şifrelemeyi DBPROPSET_SQLSERVERDBINIT destekler. Ayrıca, yeni bir bağlantı dizesi anahtar sözcüğü eklendi TrustServerCertificate. Veya değerlerini kabul eder yesno ; no varsayılan değerdir. Hizmet bileşenlerini kullanırken veya değerlerini kabul eder truefalse ; false varsayılan değerdir.

Özellik kümesinde DBPROPSET_SQLSERVERDBINIT yapılan geliştirmeler hakkında daha fazla bilgi için bkz. Başlatma ve Yetkilendirme Özellikleri (Yerel İstemci OLE DB Sağlayıcısı).

SQL Server Yerel İstemci ODBC Sürücüsü

SQL Server Yerel İstemci ODBC sürücüsü, SQLSetConnectAttr ve SQLGetConnectAttr işlevlerine yapılan eklemeler aracılığıyla doğrulama olmadan şifrelemeyi destekler. SQL_COPT_SS_TRUST_SERVER_CERTIFICATEveya SQL_TRUST_SERVER_CERTIFICATE_NOkabul SQL_TRUST_SERVER_CERTIFICATE_YES etmek için varsayılan değer olarak SQL_TRUST_SERVER_CERTIFICATE_NO eklendi. Ayrıca, yeni bir bağlantı dizesi anahtar sözcüğü eklendi TrustServerCertificate. Veya değerlerini kabul eder yesno ; no varsayılan değerdir.

  • SQL Server Yerel İstemci Özelliklerini