Bagikan melalui


Pemeliharaan & Pemecahan Masalah SQL Server Connector

Berlaku untuk:SQL Server

Informasi tambahan tentang Konektor SQL Server disediakan dalam artikel ini. Untuk informasi selengkapnya tentang konektor SQL Server, lihat Extensible Key Management Menggunakan Azure Key Vault (SQL Server), Menyiapkan SQL Server TDE Extensible Key Management dengan menggunakan Azure Key Vault, dan Menggunakan Konektor SQL Server dengan Fitur Enkripsi SQL.

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Sebuah. Petunjuk Pemeliharaan untuk Konektor SQL Server

Rotasi Kunci

Azure Key Vault mendukung rotasi kunci, yang merupakan proses pembuatan kunci baru dan memperbarui aplikasi untuk menggunakan kunci baru. Rotasi kunci adalah praktik terbaik keamanan yang membantu melindungi data jika kunci disusupi. Konektor SQL Server mendukung rotasi kunci. Kunci lama tidak boleh dihapus karena mungkin diperlukan untuk memulihkan database menggunakan kunci lama. Untuk memutar kunci, ikuti langkah-langkah di Memutar kunci asimetris dengan kunci AKV baru atau versi kunci AKV yang baru.

Peningkatan Konektor SQL Server

Versi 1.0.0.440 dan yang lebih lama telah diganti dan tidak lagi didukung di lingkungan produksi. Versi 1.0.1.0 dan yang lebih baru didukung di lingkungan produksi. Gunakan instruksi berikut untuk memutakhirkan ke versi terbaru yang tersedia di Pusat Unduhan Microsoft.

Mutakhirkan

  1. Hentikan layanan SQL Server menggunakan SQL Server Configuration Manager.
  2. Hapus instalan versi lama menggunakan Control Panel>Program>Program dan Fitur.
    1. Nama aplikasi: SQL Server Connector untuk Microsoft Azure Key Vault
    2. Versi: 15.0.300.96 (atau lebih lama)
    3. Tanggal file DLL: 30 Januari 2018 (atau yang lebih lama)
  3. Instal (tingkatkan) Konektor SQL Server baru untuk Microsoft Azure Key Vault.
    1. Versi: 15.0.2000.440
    2. Tanggal file DLL: 9 November 2024
  4. Mulai layanan SQL Server.
  5. Database terenkripsi pengujian dapat diakses.

Jika database Anda dalam keadaan RECOVERY PENDING , Anda perlu menjalankan ALTER perintah pada penyedia kriptografi. Ganti AzureKeyVault_EKM dengan nama penyedia kriptografi Anda yang sebenarnya, yang dapat Anda temukan dalam tampilan sistem sys.cryptographic_providers .

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;

Mulai ulang layanan SQL Server setelah memodifikasi penyedia kriptografi.

Pembatalan

  1. Hentikan layanan SQL Server menggunakan SQL Server Configuration Manager.

  2. Uninstal versi baru menggunakan Control Panel>Program>Program dan Fitur.

    1. Nama aplikasi: SQL Server Connector untuk Microsoft Azure Key Vault
    2. Versi: 15.0.2000.440
    3. Tanggal file DLL: 9 November 2024
  3. Instal konektor SQL Server versi lama untuk Microsoft Azure Key Vault.

    1. Versi: 15.0.300.96
    2. Tanggal file DLL: 30 Januari 2018
  4. Mulai layanan SQL Server.

  5. Periksa apakah database yang menggunakan TDE dapat diakses.

  6. Setelah memvalidasi bahwa pembaruan berfungsi, Anda dapat menghapus folder Konektor SQL Server lama (jika Anda memilih untuk mengganti namanya alih-alih menghapus instalan di Langkah 3).

Versi konektor SQL Server yang lebih lama

Tautan mendalam ke versi konektor SQL Server yang lebih lama

Memperbarui prinsipal layanan SQL Server

SQL Server menggunakan prinsipal layanan yang dibuat dalam Microsoft Entra ID (sebelumnya Azure Active Directory) sebagai kredensial untuk mengakses Key Vault. Perwakilan layanan memiliki ID Klien dan Kunci Autentikasi. Kredensial SQL Server disiapkan dengan VaultName, ID Klien, dan Kunci Autentikasi. Kunci Autentikasi berlaku untuk jangka waktu tertentu (satu atau dua tahun). Sebelum periode waktu berakhir, kunci baru harus dibuat di ID Microsoft Entra untuk perwakilan layanan. Kemudian kredensial harus diubah di SQL Server. Management Studio mempertahankan cache untuk kredensial dalam sesi saat ini, jadi ketika kredensial diubah, Management Studio harus dimulai ulang.

Dukungan Identitas Terkelola untuk SQL Server di Azure VM

Dimulai dengan SQL Server 2022 Cumulative Update 17 (CU17), identitas terkelola Microsoft Entra didukung untuk Extensible Key Management (EKM) dengan Azure Key Vault (AKV) dan Modul Keamanan Perangkat Keras Terkelola (HSM) di SQL Server di Azure VM (khusus Windows). Untuk informasi selengkapnya, lihat dukungan identitas terkelola untuk Extensible Key Management dengan Azure Key Vault. Untuk menggunakan identitas terkelola dengan Konektor SQL Server, versi konektor harus 1.0.5.0 November 2024 atau yang lebih baru. Unduh versi terbaru dari Microsoft Download Center.

Pencadangan dan Pemulihan Kunci

Brankas kunci harus dicadangkan secara teratur. Jika kunci asimetris di vault hilang, kunci tersebut dapat dipulihkan dari cadangan. Kunci harus dipulihkan menggunakan nama yang sama seperti sebelumnya, yang dilakukan perintah Pulihkan PowerShell (lihat langkah-langkah di bawah).

Jika vault telah hilang, buat ulang vault dan pulihkan kunci asimetris ke vault menggunakan nama yang sama seperti sebelumnya. Nama vault bisa berbeda (atau sama seperti sebelumnya). Atur izin akses pada vault baru untuk diberikan ke perwakilan layanan SQL Server akses yang diperlukan untuk skenario enkripsi SQL Server, lalu sesuaikan kredensial SQL Server sehingga nama vault baru tercermin.

Singkatnya, berikut adalah langkah-langkahnya:

  • Cadangkan kunci vault (menggunakan perintah PowerShell cmdlet Backup-AzureKeyVaultKey).
  • Dalam kasus kegagalan vault, buat vault baru di wilayah geografis yang sama. Pengguna yang membuat vault harus berada di direktori default yang sama dengan penyiapan service principal untuk SQL Server.
  • Pulihkan kunci ke vault baru menggunakan cmdlet PowerShell Restore-AzureKeyVaultKey, yang memulihkan kunci menggunakan nama yang sama seperti sebelumnya. Jika sudah ada kunci dengan nama yang sama, pemulihan gagal.
  • Berikan izin kepada perwakilan layanan SQL Server untuk menggunakan vault baru ini.
  • Ubah kredensial SQL Server yang digunakan oleh Mesin Database untuk mencerminkan nama vault baru (jika diperlukan).

Cadangan kunci dapat dipulihkan di seluruh wilayah Azure, selama tetap berada di wilayah geografis atau cloud nasional yang sama: AS, Kanada, Jepang, Australia, India, APAC, Eropa Brasil, Tiongkok, Pemerintah AS, atau Jerman.

B. Pertanyaan Umum

Pada Azure Key Vault

Bagaimana cara kerja operasi kunci dengan Azure Key Vault?

Kunci asimetris di brankas kunci digunakan untuk melindungi kunci enkripsi SQL Server. Hanya bagian publik dari kunci asimetris yang pernah meninggalkan brankas; bagian privat tidak pernah diekspor oleh brankas. Semua operasi kriptografi yang menggunakan kunci asimetris dilakukan dalam layanan Azure Key Vault, dan dilindungi oleh keamanan layanan.

Apa itu URI Kunci?

Setiap kunci di Azure Key Vault memiliki Pengidentifikasi Sumber Daya Seragam (URI), yang dapat Anda gunakan untuk mereferensikan kunci dalam aplikasi Anda. Gunakan format https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey untuk mendapatkan versi saat ini, dan gunakan format https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 untuk mendapatkan versi tertentu.

Saat Mengonfigurasi SQL Server

Apa saja titik akhir yang perlu diakses oleh Konektor SQL Server?

Konektor berbicara dengan dua titik akhir yang perlu diberi izin. Satu-satunya port yang diperlukan untuk komunikasi keluar ke layanan lain ini adalah 443 untuk HTTPS:

  • login.microsoftonline.com/*:443
  • *.vault.azure.net/*:443

Selain itu, memeriksa daftar pencabutan sertifikat dapat membuat lalu lintas HTTP pada port 80.

Catatan

Menggunakan Konektor SQL Server untuk Azure Key Vault di belakang firewall atau server proksi dapat memengaruhi performa jika lalu lintas tertunda atau diblokir. Kenali cara mengakses Azure Key Vault di belakang firewall untuk memastikan aturan yang benar ada.

Bagaimana cara menyambungkan ke Azure Key Vault melalui Server Proksi HTTP(S)? Konektor menggunakan pengaturan konfigurasi Proksi Internet Explorer. Pengaturan ini dapat dikontrol melalui Kebijakan Grup atau melalui Registri, tetapi penting untuk dicatat bahwa pengaturan tersebut bukan pengaturan di seluruh sistem dan perlu ditargetkan ke akun layanan yang menjalankan instans SQL Server. Jika Administrator Database melihat atau mengedit pengaturan di Internet Explorer, mereka hanya akan memengaruhi akun Administrator Database daripada mesin SQL Server. Masuk ke server secara interaktif menggunakan akun layanan tidak disarankan dan diblokir di banyak lingkungan yang aman. Perubahan pada pengaturan proxy yang dikonfigurasi mungkin memerlukan memulai ulang instans SQL Server agar perubahan tersebut berlaku, karena pengaturan ini di-cache ketika Konektor pertama kali mencoba menyambung ke brankas kunci.

Ukuran kunci mana di Azure Key Vault yang didukung oleh Konektor SQL Server? Build terbaru Konektor SQL Server mendukung kunci Azure Key Vault ukuran 2048 dan 3072.

Catatan

Tampilan sistem sys.asymmetric_keys mengembalikan ukuran kunci sebagai 2048 meskipun ukuran kunci 3072 digunakan.

Apa tingkat izin minimum yang diperlukan untuk setiap langkah konfigurasi di SQL Server?

Meskipun Anda dapat melakukan semua langkah konfigurasi sebagai anggota peran tetap server 'sysadmin', Microsoft menyarankan Anda untuk meminimalkan izin yang Anda gunakan. Daftar berikut menentukan tingkat izin minimum untuk setiap tindakan.

  • Untuk membuat penyedia kriptografi, memerlukan CONTROL SERVER izin atau keanggotaan dalam peran server tetap sysadmin .

  • Untuk mengubah opsi konfigurasi dan menjalankan RECONFIGURE pernyataan, Anda harus diberikan ALTER SETTINGS izin tingkat server. Izin ALTER SETTINGS secara implisit dimiliki oleh peran server tetap dari sysadmin dan serveradmin.

  • Untuk membuat kredensial, memerlukan ALTER ANY CREDENTIAL izin.

  • Untuk menambahkan kredensial ke login, memerlukan ALTER ANY LOGIN izin.

  • Untuk membuat kunci asimetris CREATE ASYMMETRIC KEY , memerlukan izin.

Bagaimana cara mengubah direktori Microsoft Entra default saya sehingga brankas kunci saya dibuat dalam langganan dan direktori yang sama dengan perwakilan layanan yang saya buat untuk Konektor SQL Server?

Cuplikan layar yang memperlihatkan langkah-langkah bantuan untuk mengubah direktori default pada ID Entra Microsoft.

  1. Buka portal Azure.

  2. Di sudut kanan atas halaman, pilih ikon pengaturan, atau profil pengguna Anda.

  3. Pada halaman Direktori + langganan , pilih Semua Direktori untuk melihat semua direktori Microsoft Entra milik Anda.

  4. Anda dapat mengubah direktori Startup, atau beralih ke direktori lain jika Anda memiliki beberapa direktori.

    Catatan

    Anda mungkin tidak memiliki izin untuk benar-benar mengubah direktori default pada langganan Azure Anda. Dalam hal ini, buat perwakilan layanan Microsoft Entra dalam direktori default Anda sehingga berada di direktori yang sama dengan Azure Key Vault yang digunakan nanti.

Untuk mempelajari selengkapnya tentang ID Microsoft Entra, baca Bagaimana langganan Azure terkait dengan ID Microsoft Entra.

C. Penjelasan Kode Kesalahan untuk Konektor SQL Server

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Kode Kesalahan Penyedia:

Kode kesalahan Simbol Deskripsi
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.

Jika Anda tidak melihat kode kesalahan Anda dalam tabel ini, berikut adalah beberapa alasan lain kesalahan dapat terjadi:

  • Anda mungkin tidak memiliki akses Internet dan tidak dapat mengakses Azure Key Vault Anda. Periksa koneksi Internet Anda.

  • Layanan Azure Key Vault bisa tidak berfungsi. Periksa azure.status.microsoft. Coba lagi di lain waktu.

  • Anda mungkin telah menghilangkan kunci asimetris dari Azure Key Vault atau SQL Server. Pulihkan kunci.

  • Jika Anda menerima kesalahan "Tidak dapat memuat pustaka", pastikan Anda memiliki versi Visual Studio C++ yang sesuai yang dapat didistribusikan ulang berdasarkan versi SQL Server yang Anda jalankan. Tabel berikut menentukan versi mana yang akan diinstal dari Pusat Unduhan Microsoft.

Log peristiwa Windows juga mencatat kesalahan yang terkait dengan Konektor SQL Server, yang dapat memberikan konteks tambahan tentang mengapa kesalahan tersebut benar-benar terjadi. Sumber dalam Log Peristiwa Aplikasi Windows akan menjadi "SQL Server Connector untuk Microsoft Azure Key Vault".

Pustaka Runtime C++ untuk Konektor SQL Server 1.0.5.0

Versi SQL Server Tautan Instal yang Dapat Didistribusikan Ulang jika menggunakan Konektor SQL Server 1.0.5.0
2008, 2008 R2, 2012, 2014 Paket Visual C++ Dapat Didistribusikan untuk Visual Studio 2013
2016, 2017, 2019 Visual C++ Dapat Didistribusikan Ulang untuk Visual Studio 2015

Perpustakaan Runtime C++ untuk Konektor SQL Server 1.0.4.0

Versi SQL Server Tautan Instal yang Dapat Didistribusikan Ulang jika menggunakan Konektor SQL Server 1.0.4.0
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 Paket Visual C++ Dapat Didistribusikan untuk Visual Studio 2013

Referensi Tambahan

Selengkapnya tentang Extensible Key Management:

Enkripsi SQL yang mendukung EKM:

Perintah Transact-SQL terkait:

Dokumentasi Azure Key Vault: