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.
SQL Server Bağlayıcısı hakkında ek bilgiler bu makalede verilmiştir. SQL Server bağlayıcısı hakkında daha fazla bilgi için bkz. Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi (SQL Server), Azure Key Vault kullanarak SQL Server TDE Genişletilebilir Anahtar Yönetimi'ni ayarlama ve SQL Server Bağlayıcısını SQL Şifreleme Özellikleriyle Kullanma.
Uyarı
Microsoft Entra ID, Azure Active Directory'nin (Azure AD) yeni adı olmasına rağmen, mevcut ortamların bozulmasını önlemek için Azure AD, UI alanları, bağlantı sağlayıcıları, hata kodları ve cmdletler gibi bazı sabit kodlu öğelerde hâlâ varlığını sürdürüyor. Bu makalede, iki ad birbirinin yerine kullanılabilir.
A. SQL Server Bağlayıcısı için Bakım Yönergeleri
Anahtar Döndürme
Azure Key Vault, yeni anahtar oluşturma ve uygulamaları yeni anahtarı kullanacak şekilde güncelleştirme işlemi olan anahtar döndürmeyi destekler. Anahtar döndürme, anahtarın gizliliğinin tehlikeye düşmesi durumunda verilerin korunmasına yardımcı olan en iyi güvenlik uygulamasıdır. SQL Server Bağlayıcısı anahtar döndürmeyi destekler. Eski bir anahtarı kullanarak veritabanını geri yüklemek gerekebileceğinden eski anahtarlar silinmemelidir. Anahtarı döndürmek için Asimetrik anahtarı yeni bir AKV anahtarıyla veya yeni AKV anahtarı sürümüyle döndürme'deki adımları izleyin.
SQL Server Bağlayıcısı'nı yükseltme
1.0.0.440 ve daha eski sürümler değiştirilmiştir ve artık üretim ortamlarında desteklenmez. 1.0.1.0 ve daha yeni sürümler üretim ortamlarında desteklenir. Microsoft İndirme Merkezi'nin en son sürümüne yükseltmek için aşağıdaki yönergeleri kullanın.
Güncelleme
- SQL Server Configuration Manager kullanarak SQL Server hizmetini durdurun.
-
Denetim Masası>Programlar>Programlar ve Özellikler kullanarak eski sürümü kaldırın.
- Uygulama adı: Microsoft Azure Key Vault için SQL Server Bağlayıcısı
- Sürüm: 15.0.300.96 (veya daha eski)
- DLL dosya tarihi: 30 Ocak 2018 (veya daha eski)
- Microsoft Azure Key Vault için yeni SQL Server Bağlayıcısı'nı yükleyin (yükseltin).
- Sürüm: 15.0.2000.440
- DLL dosya tarihi: 9 Kasım 2024
- SQL Server hizmetini başlatın.
- Şifrelenmiş veritabanlarını test edebilirsiniz.
Veritabanınız bir RECOVERY PENDING durumdaysa, şifreleme sağlayıcısında bir ALTER komut çalıştırmanız gerekir.
AzureKeyVault_EKM değerini, sys.cryptographic_providers sistem görünümünde bulabileceğiniz gerçek şifreleme sağlayıcınızın adıyla değiştirin.
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM DISABLE;
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM ENABLE;
Şifreleme sağlayıcısını değiştirdikten sonra SQL Server hizmetini yeniden başlatın.
Geriye Alma
SQL Server Configuration Manager kullanarak SQL Server hizmetini durdurun.
Denetim Masası'nı>Programlar ve>Özellikler kullanarak yeni sürümü kaldırın.
- Uygulama adı: Microsoft Azure Key Vault için SQL Server Bağlayıcısı
- Sürüm: 15.0.2000.440
- DLL dosya tarihi: 9 Kasım 2024
Microsoft Azure Key Vault için SQL Server Bağlayıcısı'nın eski sürümünü yükleyin.
- Sürüm: 15.0.300.96
- DLL dosya tarihi: 30 Ocak 2018
SQL Server hizmetini başlatın.
TDE kullanan veritabanlarının erişilebilir olup olmadığını denetleyin.
Güncelleştirmenin çalıştığını doğruladıktan sonra eski SQL Server Bağlayıcısı klasörünü silebilirsiniz (3. Adımda kaldırmak yerine yeniden adlandırmayı seçtiyseniz).
SQL Server Bağlayıcısı'nın eski sürümleri
SQL Server Bağlayıcısı'nın eski sürümlerine ayrıntılı bağlantılar
- Güncel: 1.0.5.0 (sürüm 15.0.2000.440) – Dosya tarihi 09 Kasım 2024
- 1.0.5.0 (sürüm 15.0.2000.440) – Dosya tarihi 24 Kasım 2020
- 1.0.5.0 (sürüm 15.0.300.96) – Dosya tarihi 30 Ocak 2018
- 1.0.4.0: (sürüm 13.0.811.168)
SQL Server hizmet sorumlusunu döndürme
SQL Server, Key Vault'e erişim sağlamak için kimlik bilgileri olarak Microsoft Entra ID (eski adıyla Azure Active Directory) ile oluşturulan hizmet ilkelerini kullanır. Hizmet sorumlusunun bir İstemci Kimliği ve Kimlik Doğrulama Anahtarı vardır. VaultName, İstemci Kimliği ve Kimlik Doğrulama Anahtarı ile bir SQL Server kimlik bilgisi ayarlanır. Kimlik Doğrulama Anahtarı belirli bir süre (bir veya iki yıl) için geçerlidir. Süre dolmadan önce, hizmet sorumlusu için Microsoft Entra Kimliği'nde yeni bir anahtar oluşturulmalıdır. Ardından SQL Server'da kimlik bilgilerinin değiştirilmesi gerekir. Management Studio geçerli oturumda kimlik bilgileri için bir önbellek tutar, bu nedenle bir kimlik bilgisi değiştirildiğinde Management Studio yeniden başlatılmalıdır.
Azure VM'de SQL Server için Yönetilen Kimlik desteği
SQL Server 2022 Toplu Güncelleştirme 17 (CU17) ile başlayarak, Microsoft Entra yönetilen kimlikler, Azure Key Vault (AKV) ve Yönetilen Donanım Güvenlik Modülleri (HSM) ile Genişletilebilir Anahtar Yönetimi (EKM) desteği için, SQL Server üzerinde Azure VM'lerde desteklenir (yalnızca Windows). Daha fazla bilgi için bkz. Azure Key Vault ile Genişletilebilir Anahtar Yönetimi için Yönetilen Kimlik desteği . SQL Server Bağlayıcısı ile yönetilen kimlikleri kullanmak için bağlayıcı sürümünün 1.0.5.0 Kasım 2024 veya üzeri olması gerekir. Microsoft İndirme Merkezi'nden en son sürümü indirin.
Anahtar Yedekleme ve Kurtarma
Anahtar kasası düzenli olarak yedeklenmelidir. Asimetrik bir anahtar kasada kaybolursa, yedekten geri yüklenebilir. Anahtar, PowerShell Geri Yükleme komutunun yaptığı gibi önceki adla aynı adı kullanarak geri yüklenmelidir (aşağıdaki adımlara bakın).
Kasa kaybolduysa, bir kasayı yeniden oluşturun ve öncekiyle aynı adı kullanarak asimetrik anahtarı kasaya geri yükleyin. Kasa adı farklı (veya öncekiyle aynı) olabilir. SQL Server hizmet sorumlusuna SQL Server şifreleme senaryoları için gereken erişimi vermek üzere yeni kasadaki erişim izinlerini ayarlayın ve ardından SQL Server kimlik bilgilerini yeni kasa adının yansıtılmış olması için ayarlayın.
Özetle, adımlar şunlardır:
- Kasa anahtarını yedekleyin (Backup-AzureKeyVaultKey PowerShell cmdlet'ini kullanarak).
- Kasa hatası durumunda aynı coğrafi bölgede yeni bir kasa oluşturun. Kasayı oluşturan kullanıcı, SQL Server için hizmet sorumlusu kurulumuyla aynı varsayılan dizinde olmalıdır.
- Anahtarı, öncekiyle aynı adı kullanarak geri yükleyen Restore-AzureKeyVaultKey PowerShell komutunu kullanarak yeni kasaya yükleyin. Aynı adı taşıyan bir anahtar hali hazırda mevcutsa, geri yükleme başarısız olur.
- Bu yeni kasayı kullanmak için SQL Server hizmet sorumlusuna izinler verin.
- Veritabanı Altyapısı tarafından kullanılan SQL Server kimlik bilgilerini yeni kasa adını yansıtacak şekilde değiştirin (gerekirse).
Ana yedeklemeler, aynı coğrafi bölgede veya ulusal bulutta kaldıkları sürece Azure bölgelerinde geri yüklenebilir: ABD, Kanada, Japonya, Avustralya, Hindistan, APAC, Avrupa Brezilya, Çin, ABD Kamu veya Almanya.
B. Sık Sorulan Sorular
Azure Key Vault'ta
Anahtar işlemleri Azure Key Vault ile nasıl çalışır?
Anahtar kasasındaki asimetrik anahtar, SQL Server şifreleme anahtarlarını korumak için kullanılır. Asimetrik anahtarın yalnızca ortak kısmı kasayı terk eder; özel kısmı kasa tarafından hiçbir zaman dışarı çıkarılmamaktadır. Asimetrik anahtarı kullanan tüm şifreleme işlemleri Azure Key Vault hizmetinde yapılır ve hizmetin güvenliği tarafından korunur.
Anahtar URI'si nedir?
Azure Key Vault'taki her anahtarın tekdüzen Kaynak Tanımlayıcısı (URI) vardır ve bunu uygulamanızdaki anahtara başvurmak için kullanabilirsiniz. Geçerli sürümü almak için biçimini https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey ve belirli bir sürümü almak için biçimini https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 kullanın.
SQL Server'ın yapılandırılması üzerine
SQL Server Bağlayıcısı'nın erişmesi gereken uç noktalar nelerdir?
Bağlayıcı, izin verilen iki uç noktayla konuşur. Bu diğer hizmetlere giden iletişim için gereken tek bağlantı noktası HTTPS için 443'dür:
login.microsoftonline.com/*:443*.vault.azure.net/*:443
Ayrıca, sertifika iptal listesinin denetlenmesi 80 numaralı bağlantı noktasında HTTP trafiği oluşturabilir.
Uyarı
Azure Key Vault için SQL Server Bağlayıcısı'nın bir güvenlik duvarının veya ara sunucunun arkasında kullanılması, trafik gecikirse veya engellenirse performansı etkileyebilir. Doğru kuralların uygulandığından emin olmak için güvenlik duvarının arkasındaki Access Azure Key Vault hakkında bilgi sahibi olun.
HTTP(S) Proxy Sunucusu aracılığıyla Azure Key Vault'a nasıl bağlanabilirim? Bağlayıcı, Internet Explorer'ın Ara Sunucu yapılandırma ayarlarını kullanır. Bu ayarlar Grup İlkesi veya Kayıt Defteri aracılığıyla denetlenebilir, ancak bunların sistem genelindeki ayarlar olmadığını ve SQL Server örneğini çalıştıran hizmet hesabına hedeflenmeleri gerektiğini unutmayın. Veritabanı Yöneticisi, Internet Explorer'da ayarları görüntüler veya düzenlerse, SQL Server altyapısı yerine yalnızca Veritabanı Yöneticisi'nin hesabını etkiler. Hizmet hesabını kullanarak sunucuda etkileşimli olarak oturum açmak önerilmez ve birçok güvenli ortamda engellenir. Yapılandırılan proxy ayarlarında yapılan değişiklikler, Bağlayıcı bir anahtar kasasına bağlanmayı ilk kez denediğinde önbelleğe alınan SQL Server örneğinin yeniden başlatılmasını gerektirebilir.
Azure Key Vault'taki hangi anahtar boyutları SQL Server Bağlayıcısı tarafından desteklenir? SQL Server Bağlayıcısı'nın en son derlemesi, 2048 ve 3072 boyutlarında Azure Key Vault anahtarlarını destekler.
Uyarı
Sistem sys.asymmetric_keys görünümü, anahtar boyutu 3072 kullanılıyor olsa bile anahtar boyutunu 2048 olarak döndürür.
SQL Server'daki her yapılandırma adımı için gereken en düşük izin düzeyleri nelerdir?
Sysadmin sabit sunucu rolünün bir üyesi olarak tüm yapılandırma adımlarını gerçekleştirebilseniz de, Microsoft kullandığınız izinleri en aza indirmenizi tavsiye eder. Aşağıdaki liste, her eylem için en düşük izin düzeyini tanımlar.
Şifreleme sağlayıcısı oluşturmak için sysadmin sabit sunucu rolünde izin veya üyelik gerekir
CONTROL SERVER.Yapılandırma seçeneğini değiştirmek ve
RECONFIGUREdeyimini çalıştırmak içinALTER SETTINGSsunucu düzeyinde izin verilmelidir. İzinALTER SETTINGS, sysadmin ve serveradmin sabit sunucu rolleri tarafından tanımlı olarak verilir.Kimlik bilgisi oluşturmak için izin gerekir
ALTER ANY CREDENTIAL.Oturum açma bilgileri eklemek için izin gerekir
ALTER ANY LOGIN.Asimetrik anahtar oluşturmak için izin gerekir
CREATE ASYMMETRIC KEY.
Varsayılan Microsoft Entra dizinimi, oluşturduğum SQL Server Bağlayıcısı için hizmet sorumlusuyla aynı abonelik ve dizinde anahtar kasamın oluşturulmasını sağlamak için nasıl değiştirebilirim?
Azure portala gidin.
Sayfanın sağ üst köşesinde ayarlar simgesini veya kullanıcı profilinizi seçin.
Dizinler + abonelikler sayfasında, ait olduğunuz tüm Microsoft Entra dizinlerini görmek için Tüm Dizinler'i seçin.
Başlangıç dizininizi değiştirebilir veya birden çok dizininiz varsa farklı bir dizine geçebilirsiniz.
Uyarı
Azure aboneliğinizde varsayılan dizini değiştirme izniniz olmayabilir. Bu durumda, Microsoft Entra hizmet ilkesini varsayılan dizininizde oluşturun, böylece daha sonra kullanılacak olan Azure Key Vault ile aynı dizinde bulunsun.
Microsoft Entra Id hakkında daha fazla bilgi edinmek için Bkz. Azure aboneliklerinin Microsoft Entra Id ile ilişkisi.
C. SQL Server Bağlayıcısı için Hata Kodu Açıklamaları
Uyarı
Microsoft Entra ID, Azure Active Directory'nin (Azure AD) yeni adı olmasına rağmen, mevcut ortamların bozulmasını önlemek için Azure AD, UI alanları, bağlantı sağlayıcıları, hata kodları ve cmdletler gibi bazı sabit kodlu öğelerde hâlâ varlığını sürdürüyor. Bu makalede, iki ad birbirinin yerine kullanılabilir.
Sağlayıcı Hata Kodları:
| Hata kodu | Sembol | Açıklama |
|---|---|---|
0 |
scp_err_Success |
The operation has succeeded. |
1 |
scp_err_Failure |
The operation has failed. |
2 |
scp_err_InsufficientBuffer |
This error tells engine to allocate more memory for the buffer. |
3 |
scp_err_NotSupported |
The operation is not supported. For example, the key type or algorithm specified isn't supported by the EKM provider. |
4 |
scp_err_NotFound |
The specified key or algorithm couldn't be found by the EKM provider. |
5 |
scp_err_AuthFailure |
The authentication has failed with EKM provider. |
6 |
scp_err_InvalidArgument |
The provided argument is invalid. |
7 |
scp_err_ProviderError |
There is an unspecified error happened in EKM provider that is caught by SQL engine. |
401 |
acquireToken |
Server responded 401 for the request. Make sure the client ID and secret are correct, and the credential string is a concatenation of AAD client ID and secret without hyphens. |
404 |
getKeyByName |
The server responded 404, because the key name was not found. Please make sure the key name exists in your vault. |
2049 |
scp_err_KeyNameDoesNotFitThumbprint |
The key name is too long to fit into SQL engine's thumbprint. The key name must not exceed 26 characters. |
2050 |
scp_err_PasswordTooShort |
The secret string that is the concatenation of AAD client ID and secret is shorter than 32 characters. |
2051 |
scp_err_OutOfMemory |
SQL engine has run out of memory and failed to allocate memory for EKM provider. |
2052 |
scp_err_ConvertKeyNameToThumbprint |
Failed to convert key name to thumbprint. |
2053 |
scp_err_ConvertThumbprintToKeyName| Failed to convert thumbprint to key name. |
|
2057 |
scp_err_ThumbprintExistedInRegistry |
The key thumbprint already exists in Windows registry mapped to a different key URI. |
2058 |
scp_err_FailureInRegistry| Failed to perform the operation in registry. SQL Server service account does not have permission to create the registry key. |
|
3000 |
ErrorSuccess |
The AKV operation has succeeded. |
3001 |
ErrorUnknown |
The AKV operation has failed with an unspecified error. |
3002 |
ErrorHttpCreateHttpClientOutOfMemory |
Cannot create an HttpClient for AKV operation due to out of memory. |
3003 |
ErrorHttpOpenSession |
Cannot open an Http session because of network error. |
3004 |
ErrorHttpConnectSession |
Cannot connect an Http session because of network error. |
3005 |
ErrorHttpAttemptConnect |
Cannot attempt a connect because of network error. |
3006 |
ErrorHttpOpenRequest |
Cannot open a request due to network error. |
3007 |
ErrorHttpAddRequestHeader |
Cannot add request header. |
3008 |
ErrorHttpSendRequest |
Cannot send a request due to network error. |
3009 |
ErrorHttpGetResponseCode |
Cannot get a response code due to network error. |
3010 |
ErrorHttpResponseCodeUnauthorized |
Server responded 401 for the request. |
3011 |
ErrorHttpResponseCodeThrottled |
Server has throttled the request. |
3012 |
ErrorHttpResponseCodeClientError |
The request sent from the connector is invalid. This usually means the key name is invalid or contains invalid characters. |
3013 |
ErrorHttpResponseCodeServerError |
Server responded a response code between 500 and 600. |
3014 |
ErrorHttpQueryHeader |
Cannot query for response header. |
3015 |
ErrorHttpQueryHeaderOutOfMemoryCopyHeader |
Cannot copy the response header due to out of memory. |
3016 |
ErrorHttpQueryHeaderOutOfMemoryReallocBuffer |
Cannot query the response header due to out of memory when reallocating a buffer. |
3017 |
ErrorHttpQueryHeaderNotFound |
Cannot find the query header in the response. |
3018 |
ErrorHttpQueryHeaderUpdateBufferLength |
Cannot update the buffer length when querying the response header. |
3019 |
ErrorHttpReadData |
Cannot read response data due to network error. |
3076 |
ErrorHttpResourceNotFound |
The server responded 404, because the key name was not found. Make sure the key name exists in your vault. |
3077 |
ErrorHttpOperationForbidden |
The server responded 403, because the user doesn't have proper permission to perform the action. Make sure you have the permission for the specified operation. At minimum, the connector requires 'get, list, wrapKey, unwrapKey' permissions to function properly. |
3100 |
ErrorHttpCreateHttpClientOutOfMemory |
Cannot create a HttpClient for AKV operation due to out of memory. |
3101 |
ErrorHttpOpenSession |
Cannot open a Http session due to network error. |
3102 |
ErrorHttpConnectSession |
Cannot connect a Http session due to network error. |
3103 |
ErrorHttpAttemptConnect |
Cannot attempt a connect due to network error. |
3104 |
ErrorHttpOpenRequest |
Cannot open a request due to network error. |
3105 |
ErrorHttpAddRequestHeader |
Cannot add request header. |
3106 |
ErrorHttpSendRequest |
Cannot send a request due to network error. |
3107 |
ErrorHttpGetResponseCode |
Cannot get a response code due to network error. |
3108 |
ErrorHttpResponseCodeUnauthorized |
Server responded 401 for the request. Make sure the client Id and secret are correct, and the credential string is a concatenation of AAD client Id and secret without hyphens. |
3109 |
ErrorHttpResponseCodeThrottled |
Server has throttled the request. |
3110 |
ErrorHttpResponseCodeClientError |
The request is invalid. This usually means the key name is invalid or contains invalid characters. |
3111 |
ErrorHttpResponseCodeServerError |
Server responded a response code between 500 and 600. |
3112 |
ErrorHttpResourceNotFound |
The server responded 404, because the key name was not found. Please make sure the key name exists in your vault. |
3113 |
ErrorHttpOperationForbidden |
The server responded 403, because the user does not have proper permission to perform the action. Please make sure you have the permission for the specified operation. At minimum,'get, wrapKey, unwrapKey' permissions are required. |
3114 |
ErrorHttpQueryHeader |
Cannot query for response header. |
3115 |
ErrorHttpQueryHeaderOutOfMemoryCopyHeader |
Cannot copy the response header due to out of memory. |
3116 |
ErrorHttpQueryHeaderOutOfMemoryReallocBuffer |
Cannot query the response header due to out of memory when reallocating a buffer. |
3117 |
ErrorHttpQueryHeaderNotFound |
Cannot find the query header in the response. |
3118 |
ErrorHttpQueryHeaderUpdateBufferLength |
Cannot update the buffer length when querying the response header. |
3119 |
ErrorHttpReadData |
Cannot read response data due to network error. |
3120 |
ErrorHttpGetResponseOutOfMemoryCreateTempBuffer |
Cannot get response body due to out of memory when creating a temp buffer. |
3121 |
ErrorHttpGetResponseOutOfMemoryGetResultString |
Cannot get response body due to out of memory when get result string. |
3122 |
ErrorHttpGetResponseOutOfMemoryAppendResponse |
Cannot get response body due to out of memory when appending response. |
3128 |
ErrorHttpBadRequest |
The secret and client id are correct but in the wrong format. |
3200 |
ErrorGetAADValuesOutOfMemoryConcatPath |
Cannot get Azure Active Directory challenge header values due to out of memory when concatenating the path. |
3201 |
ErrorGetAADDomainUrlStartPosition |
Cannot find the starting position for Azure Active Directory domain Url in malformatted response challenge header. |
3202 |
ErrorGetAADDomainUrlStopPosition |
Cannot find the ending position for Azure Active Directory domain Url in malformatted response challenge header. |
3203 |
ErrorGetAADDomainUrlMalformatted |
The Azure Active Directory response challenge header is malformatted and doesn't contain the AAD domain Url. |
3204 |
ErrorGetAADDomainUrlOutOfMemoryAlloc |
Out of memory when allocating buffer for Azure Active Directory domain Url. |
3205 |
ErrorGetAADTenantIdOutOfMemoryAlloc |
Out of memory when allocating buffer for Azure Active Directory tenantId. |
3206 |
ErrorGetAKVResourceUrlStartPosition |
Cannot find the starting position for Azure Key Vault resource Url in malformatted response challenge header. |
3207 |
ErrorGetAKVResourceUrlStopPosition |
Cannot find the ending position for Azure Key Vault resource Url in malformatted response challenge header. |
3208 |
ErrorGetAKVResourceUrlOutOfMemoryAlloc |
Out of memory when allocating buffer for Azure Key Vault resource Url. |
3300 |
ErrorGetTokenOutOfMemoryConcatPath |
Cannot get token due to out of memory when concatenating the request path. |
3301 |
ErrorGetTokenOutOfMemoryConcatBody |
Cannot get token due to out of memory when concatenating the response body. |
3302 |
ErrorGetTokenOutOfMemoryConvertResponseString |
Cannot get token due to out of memory when converting the response string. |
3303 |
ErrorGetTokenBadCredentials |
Cannot get token due to incorrect credentials. Make sure the credential string or certificate is valid. |
3304 |
ErrorGetTokenFailedToGetToken |
While the credentials are correct, the operation still failed to get a valid token. |
3305 |
ErrorGetTokenRejected |
The token is valid but is rejected by server. |
3306 |
ErrorGetTokenNotFound |
Cannot find the token in response. |
3307 |
ErrorGetTokenJsonParser |
Cannot parse the JSON response of server. |
3308 |
ErrorGetTokenExtractToken |
Cannot extract the token from the JSON response. |
3400 |
ErrorGetKeyByNameOutOfMemoryConvertResponseString |
Cannot get the key by name due to out of memory converting the response string. |
3401 |
ErrorGetKeyByNameOutOfMemoryConcatPath |
Cannot get the key by name due to out of memory when concatenating the path. |
3402 |
ErrorGetKeyByNameOutOfMemoryConcatHeader |
Cannot get the key by name due to out of memory when concatenating the header. |
3403 |
ErrorGetKeyByNameNoResponse |
Cannot get the key by name due to no response from server. |
3404 |
ErrorGetKeyByNameJsonParser |
Cannot get the key by name due to failed to parse the JSON response. |
3405 |
ErrorGetKeyByNameExtractKeyNode |
Cannot get the key by name due to failed to extract the key node from the response. |
3406 |
ErrorGetKeyByNameExtractKeyId |
Cannot get the key by name due to failed to extract the key Id from the response. |
3407 |
ErrorGetKeyByNameExtractKeyType |
Cannot get the key by name due to failed to extract the key type from the response. |
3408 |
ErrorGetKeyByNameExtractKeyN |
Cannot get the key by name due to failed to extract the key N from the response. |
3409 |
ErrorGetKeyByNameBase64DecodeN |
Cannot get the key by name due to failed to Base64 decode the N. |
3410 |
ErrorGetKeyByNameExtractKeyE |
Cannot get the key by name due to failed to extract the key E from the response. |
3411 |
ErrorGetKeyByNameBase64DecodeE |
Cannot get the key by name due to failed to Base64 decode the E. |
3412 |
ErrorGetKeyByNameExtractKeyUri |
Cannot extract the key Uri from the response. |
3500 |
ErrorBackupKeyOutOfMemoryConvertResponseString |
Cannot back up key due to out of memory when converting the response string. |
3501 |
ErrorBackupKeyOutOfMemoryConcatPath |
Cannot back up key due to out of memory when concatenating the path. |
3502 |
ErrorBackupKeyOutOfMemoryConcatHeader |
Cannot back up key due to out of memory when concatenating the request header. |
3503 |
ErrorBackupKeyNoResponse |
Cannot back up key due to no response from server. |
3504 |
ErrorBackupKeyJsonParser |
Cannot back up key due to failed to parse the JSON response. |
3505 |
ErrorBackupKeyExtractValue |
Cannot back up key due to failed to extract the value from JSON response. |
3506 |
ErrorBackupKeyBase64DecodeValue |
Cannot back up key due to failed to Base64 decode the value field. |
3600 |
ErrorWrapKeyOutOfMemoryConvertResponseString |
Cannot wrap key due to out of memory when converting response string. |
3601 |
ErrorWrapKeyOutOfMemoryConcatPath |
Cannot wrap key due to out of memory when concatenating the path. |
3602 |
ErrorWrapKeyOutOfMemoryConcatHeader |
Cannot wrap key due to out of memory when concatenating the header. |
3603 |
ErrorWrapKeyOutOfMemoryConcatBody |
Cannot wrap key due to out of memory when concatenating the body. |
3604 |
ErrorWrapKeyOutOfMemoryConvertEncodedBody |
Cannot wrap key due to out of memory when converting the encoded body. |
3605 |
ErrorWrapKeyBase64EncodeKey |
Cannot wrap key due to failed to Base64 encode the key. |
3606 |
ErrorWrapKeyBase64DecodeValue |
Cannot wrap key due to failed to Base64 decode the response value. |
3607 |
ErrorWrapKeyJsonParser |
Cannot wrap key due to failed to parse the JSON response. |
3608 |
ErrorWrapKeyExtractValue |
Cannot wrap key due to failed to extract value from response. |
3609 |
ErrorWrapKeyNoResponse |
Cannot wrap key due to no response from server. |
3700 |
ErrorUnwrapKeyOutOfMemoryConvertResponseString |
Cannot unwrap key due to out of memory when converting response string. |
3701 |
ErrorUnwrapKeyOutOfMemoryConcatPath |
Cannot unwrap key due to out of memory when concatenating the path. |
3702 |
ErrorUnwrapKeyOutOfMemoryConcatHeader |
Cannot unwrap key due to out of memory when concatenating the header. |
3703 |
ErrorUnwrapKeyOutOfMemoryConcatBody |
Cannot unwrap key due to out of memory when concatenating the body. |
3704 |
ErrorUnwrapKeyOutOfMemoryConvertEncodedBody |
Cannot unwrap key due to out of memory when converting the encoded body. |
3705 |
ErrorUnwrapKeyBase64EncodeKey |
Cannot unwrap key due to failed to Base64 encode the key. |
3706 |
ErrorUnwrapKeyBase64DecodeValue |
Cannot unwrap key due to failed to Base64 decode the response value. |
3707 |
ErrorUnwrapKeyJsonParser |
Cannot unwrap key due to failed to extract value from response. |
3708 |
ErrorUnwrapKeyExtractValue |
Cannot unwrap key due to failed to extract value from response. |
3709 |
ErrorUnwrapKeyNoResponse |
Cannot unwrap key due to no response from server. |
3800 |
ErrorSecretAuthParamsGetRequestBody |
Error creating request body using AAD clientId and secret. |
3801 |
ErrorJWTTokenCreateHeader |
Error creating JWT token header for authentication with AAD. |
3802 |
ErrorJWTTokenCreatePayloadGUID |
Error creating GUID for JWT token payload for authentication with AAD. |
3803 |
ErrorJWTTokenCreatePayload |
Error creating JWT token payload for authentication with AAD. |
3804 |
ErrorJWTTokenCreateSignature |
Error creating JWT token signature for authentication with AAD. |
3805 |
ErrorJWTTokenSignatureHashAlg |
Error getting SHA256 hash algorithm for authentication with AAD. |
3806 |
ErrorJWTTokenSignatureHash |
Error creating SHA256 hash for JWT token authentication with AAD. |
3807 |
ErrorJWTTokenSignatureSignHash |
Error signing JWT token hash for authentication with AAD. |
3808 |
ErrorJWTTokenCreateToken |
Error creating JWT token for authentication with AAD. |
3809 |
ErrorPfxCertAuthParamsImportPfx |
Error importing Pfx certificate for authentication with AAD. |
3810 |
ErrorPfxCertAuthParamsGetThumbprint |
Error getting thumbprint from Pfx certificate for authentication with AAD. |
3811 |
ErrorPfxCertAuthParamsGetPrivateKey |
Error getting private key from Pfx certificate for authentication with AAD. |
3812 |
ErrorPfxCertAuthParamsSignAlg |
Error getting RSA signing algorithm for Pfx certificate authentication with AAD. |
3813 |
ErrorPfxCertAuthParamsImportForSign |
Error importing Pfx private key for RSA signing for authentication with AAD. |
3814 |
ErrorPfxCertAuthParamsCreateRequestBody |
Error creating request body from Pfx certificate for authentication with AAD. |
3815 |
ErrorPEMCertAuthParamsGetThumbprint |
Error Base64 decoding Thumbprint for authentication with AAD. |
3816 |
ErrorPEMCertAuthParamsGetPrivateKey |
Error getting RSA private key from PEM for authentication with AAD. |
3817 |
ErrorPEMCertAuthParamsSignAlg |
Error getting RSA signing algorithm for PEM private key authentication with AAD. |
3818 |
ErrorPEMCertAuthParamsImportForSign |
Error importing PEM private key for RSA signing for authentication with AAD. |
3819 |
ErrorPEMCertAuthParamsCreateRequestBody |
Error creating request body from PEM private key for authentication with AAD. |
3820 |
ErrorLegacyPrivateKeyAuthParamsSignAlg |
Error getting RSA signing algorithm for Legacy private key authentication with AAD. |
3821 |
ErrorLegacyPrivateKeyAuthParamsImportForSign |
Error importing Legacy private key for RSA signing for authentication with AAD. |
3822 |
ErrorLegacyPrivateKeyAuthParamsCreateRequestBody |
Error creating request body from Legacy private key for authentication with AAD. |
3900 |
ErrorAKVDoesNotExist |
Error internet name not resolved. This typically indicates the Azure Key Vault is deleted. |
4000 |
ErrorCreateKeyVaultRetryManagerOutOfMemory |
Cannot create a RetryManager for AKV operation due to out of memory. |
Bu tabloda hata kodunuzu görmüyorsanız, hatanın oluşma nedenlerinden bazıları şunlardır:
İnternet erişiminiz olmayabilir ve Azure Key Vault'unuza erişemeyebilirsiniz. İnternet bağlantınızı denetleyin.
Azure Key Vault hizmeti çalışmıyor olabilir. azure.status.microsoft dosyasını gözden geçirin. Başka bir zamanda yeniden deneyin.
Azure Key Vault'tan veya SQL Server'dan asimetrik anahtarı bırakmış olabilirsiniz. Anahtarı geri yükleyin.
"Kitaplık yüklenemiyor" hatası alıyorsanız, çalıştırdığınız SQL Server sürümüne göre Visual Studio C++ yeniden dağıtılabilir sürümünün yüklü olduğundan emin olun. Aşağıdaki tablo, Microsoft İndirme Merkezi'nden hangi sürümün yükleneceğini belirtir.
Windows olay günlüğü ayrıca SQL Server Bağlayıcısı ile ilişkili hataları günlüğe kaydeder ve bu da hatanın neden oluştuğuna ilişkin ek bağlam konusunda yardımcı olabilir. Windows Uygulama Olay Günlüğü'ndeki kaynak "Microsoft Azure Key Vault için SQL Server Bağlayıcısı" olacaktır.
SQL Server Bağlayıcı 1.0.5.0 için C++ Çalışma Zamanı Kütüphaneleri
| SQL Server Sürümü | SQL Server Connector 1.0.5.0 kullanılıyorsa Yeniden Dağıtılabilir Yükleme Bağlantısı |
|---|---|
| 2008, 2008 R2, 2012, 2014 | Visual Studio 2013 için Visual C++ Yeniden Dağıtılabilir Paketleri |
| 2016, 2017, 2019 | Visual Studio 2015 için Visual C++ Yeniden Dağıtılabilir |
SQL Server Bağlayıcısı 1.0.4.0 için C++ Çalışma Zamanı Kitaplıkları
| SQL Server Sürümü | SQL Server Bağlayıcısı 1.0.4.0 kullanılıyorsa Yeniden Dağıtılabilir Yükleme Bağlantısı |
|---|---|
| 2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Visual Studio 2013 için Visual C++ Yeniden Dağıtılabilir Paketleri |
Ek Kaynaklar
Genişletilebilir Anahtar Yönetimi Hakkında Daha Fazla Bilgi:
EKM'i destekleyen SQL Şifrelemeleri:
İlgili Transact-SQL Komutları:
Azure Key Vault belgeleri:
PowerShell Azure Key Vault Cmdlets kılavuzu
İlgili içerik
- Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi (SQL Server)
- SQL Şifreleme Özellikleri ile SQL Server Bağlayıcısı Kullanma
- EKM sağlayıcısı etkin (sunucu yapılandırma seçeneği)
- Azure Key Vault’u kullanarak SQL Server TDE Genişletilebilir Anahtar Yönetimi'ni ayarlama
- Ek örnek betikler için SQL Server Saydam Veri Şifrelemesi ve Azure Key Vault ile Genişletilebilir Anahtar Yönetimi'ndeki bloga bakın