Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
- Hentikan layanan SQL Server menggunakan SQL Server Configuration Manager.
- Hapus instalan versi lama menggunakan Control Panel>Program>Program dan Fitur.
- Nama aplikasi: SQL Server Connector untuk Microsoft Azure Key Vault
- Versi: 15.0.300.96 (atau lebih lama)
- Tanggal file DLL: 30 Januari 2018 (atau yang lebih lama)
- Instal (tingkatkan) Konektor SQL Server baru untuk Microsoft Azure Key Vault.
- Versi: 15.0.2000.440
- Tanggal file DLL: 9 November 2024
- Mulai layanan SQL Server.
- 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
Hentikan layanan SQL Server menggunakan SQL Server Configuration Manager.
Uninstal versi baru menggunakan Control Panel>Program>Program dan Fitur.
- Nama aplikasi: SQL Server Connector untuk Microsoft Azure Key Vault
- Versi: 15.0.2000.440
- Tanggal file DLL: 9 November 2024
Instal konektor SQL Server versi lama untuk Microsoft Azure Key Vault.
- Versi: 15.0.300.96
- Tanggal file DLL: 30 Januari 2018
Mulai layanan SQL Server.
Periksa apakah database yang menggunakan TDE dapat diakses.
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
- Saat ini: 1.0.5.0 (versi 15.0.2000.440) – Tanggal file 09 November 2024
- 1.0.5.0 (versi 15.0.2000.440) – Tanggal file 24 November 2020
- 1.0.5.0 (versi 15.0.300.96) – Tanggal file 30 Januari 2018
- 1.0.4.0: (versi 13.0.811.168)
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 SERVERizin atau keanggotaan dalam peran server tetap sysadmin .Untuk mengubah opsi konfigurasi dan menjalankan
RECONFIGUREpernyataan, Anda harus diberikanALTER SETTINGSizin tingkat server. IzinALTER SETTINGSsecara implisit dimiliki oleh peran server tetap dari sysadmin dan serveradmin.Untuk membuat kredensial, memerlukan
ALTER ANY CREDENTIALizin.Untuk menambahkan kredensial ke login, memerlukan
ALTER ANY LOGINizin.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?
Buka portal Azure.
Di sudut kanan atas halaman, pilih ikon pengaturan, atau profil pengguna Anda.
Pada halaman Direktori + langganan , pilih Semua Direktori untuk melihat semua direktori Microsoft Entra milik Anda.
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:
Membuat cadangan terenkripsi
Perintah Transact-SQL terkait:
MEMBUAT KUNCI ASIMETRIS (Transact-SQL)
Dokumentasi Azure Key Vault:
Referensi Azure Key Vault Cmdlet PowerShell
Konten terkait
- Manajemen Kunci yang Dapat Diperluas Menggunakan Azure Key Vault (SQL Server)
- Menggunakan Konektor SQL Server dengan Fitur Enkripsi SQL
- Penyedia EKM diaktifkan (opsi konfigurasi server)
- Menyiapkan SQL Server TDE Extensible Key Management dengan menggunakan Azure Key Vault
- Untuk contoh skrip tambahan, lihat blog di Enkripsi Data Transparan SQL Server dan Extensible Key Management dengan Azure Key Vault