Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Дополнительные сведения о соединителе SQL Server приведены в этой статье. Дополнительные сведения о соединителе SQL Server см. в статье Расширяемое управление ключами с помощью Azure Key Vault (SQL Server), Настройка расширяемого управления ключами SQL Server с помощью Azure Key Vaultи Использование соединителя SQL Server с функциями шифрования SQL.
Примечание.
Хотя Microsoft Entra ID — это новое название для Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.
А. Инструкции по обслуживанию для соединителя SQL Server
Ротация ключей
Azure Key Vault поддерживает смену ключей, которая является процессом создания нового ключа и обновления приложений для использования нового ключа. Смена ключей — это рекомендация по обеспечению безопасности, которая помогает защитить данные в случае компрометации ключа. Соединитель SQL Server поддерживает смену ключей. Старые ключи не следует удалять, так как может потребоваться восстановить базу данных с помощью старого ключа. Чтобы повернуть ключ, выполните действия, описанные в разделе "Поворот асимметричного ключа" с новым ключом AKV или новой версией ключа AKV.
Обновление коннектора SQL Server
Версии 1.0.0.440 и старше были заменены и больше не поддерживаются в рабочих средах. Версии 1.0.1.0 и более новые поддерживаются в рабочих средах. Воспользуйтесь приведенными ниже инструкциями, чтобы выполнить обновление до последней версии в Центре загрузки Майкрософт.
Обновление
- Остановите службу SQL Server с помощью диспетчера конфигурации SQL Server.
- Удалите старую версию с помощью Панели управления>Программы>Программы и компоненты.
- Имя приложения: Соединитель SQL Server для Microsoft Azure Key Vault
- Версия: 15.0.300.96 (или более ранняя версия)
- Дата файла DLL: 30 января 2018 г. (или более ранняя версия)
- Установите (обновите) новый соединитель SQL Server для Microsoft Azure Key Vault.
- Версия: 15.0.2000.440
- Дата файла DLL: 9 ноября 2024 г.
- Запустите службу SQL Server.
- Тестовые зашифрованные базы данных доступны.
Откат
Остановите службу SQL Server с помощью диспетчера конфигурации SQL Server.
Удалите новую версию с помощью Панели управления>Программы>Программы и компоненты.
- Имя приложения: Соединитель SQL Server для Microsoft Azure Key Vault
- Версия: 15.0.2000.440
- Дата файла DLL: 9 ноября 2024 г.
Установите старую версию соединителя SQL Server для Microsoft Azure Key Vault.
- Версия: 15.0.300.96
- Дата файла DLL: 30 января 2018 г.
Запустите службу SQL Server.
Убедитесь, что базы данных с помощью TDE доступны.
После проверки работы обновления можно удалить старую папку соединителя SQL Server (если вы решили переименовать папку вместо удаления на шаге 3).
Старые версии соединителя SQL Server
Глубокие ссылки на предыдущие версии соединителя SQL Server
- Current: 1.0.5.0 (версия 15.0.2000.440) — дата файла 09 ноября 2024 г.
- 1.0.5.0 (версия 15.0.2000.440) — дата файла 24 ноября 2020 г.
- 1.0.5.0 (версия 15.0.300.96), дата файла 30 января 2018 г.
- 1.0.4.0 (версия 13.0.811.168)
Развертывание субъекта-службы SQL Server
SQL Server использует субъектов-служб, созданных в Microsoft Entra ID (ранее Azure Active Directory), в качестве учетных данных для доступа к хранилищу ключей. Субъект-служба имеет идентификатор клиента и ключ проверки подлинности. Учетные данные SQL Server настраиваются с помощью хранилища, идентификатора клиента и ключа проверки подлинности. Ключ проверки подлинности действителен в течение определенного периода времени (1–2 года). До истечения срока действия текущего ключа в Microsoft Entra ID необходимо создать новый ключ для субъекта-службы. Затем необходимо изменить учетные данные в SQL Server. Management Studio поддерживает кэш учетных данных в текущем сеансе, поэтому при изменении учетных данных необходимо перезапустить Management Studio.
Поддержка управляемого удостоверения для SQL Server на виртуальной машине Azure
Начиная с накопительного обновления 17 (CU17) для SQL Server 2022, поддерживается использование управляемых удостоверений Microsoft Entra для расширяемого управления ключами (EKM) с помощью Azure Key Vault (AKV) и управляемых модулей аппаратной безопасности (HSM) на виртуальных машинах Azure (только для Windows). Дополнительные сведения см. в поддержке управляемого удостоверения для расширяемого управления ключами с помощью Azure Key Vault. Для использования управляемых удостоверений с соединителем SQL Server версия соединителя должна быть 1.0.5.0 или более поздняя, начиная с ноября 2024 г. Скачайте последнюю версию в Центре загрузки Майкрософт.
Резервное копирование и восстановление ключей
Для хранилища ключей необходимо регулярно создавать резервную копию. В случае утраты асимметричного ключа в хранилище его можно восстановить из резервной копии. Ключ необходимо восстановить с помощью того же имени, что и раньше, которое выполняет команда Restore PowerShell (см. ниже).
Если хранилище было потеряно, создайте хранилище и восстановите асимметричный ключ в хранилище, используя то же имя, что и раньше. Имя хранилища может отличаться (можно сохранить прежнее). Установите разрешения доступа для нового хранилища, чтобы предоставить субъекту-службе SQL Server доступ, необходимый для сценариев шифрования SQL Server, а затем настроить учетные данные SQL Server так, чтобы они отражали новое имя хранилища.
В целом необходимо выполнить следующие действия.
- Создать резервную копию ключа хранилища (с помощью командлета PowerShell Backup-AzureKeyVaultKey).
- В случае сбоя хранилища создайте новое хранилище в той же географической области. Пользователь, создающий хранилище, должен находиться в том же каталоге по умолчанию, что и служебный принципал, настроенный для SQL Server.
- Восстановите ключ в новом хранилище с помощью командлета PowerShell Restore-AzureKeyVaultKey, который восстанавливает ключ с прежним именем. Если уже существует ключ с таким же именем, восстановление завершается ошибкой.
- Предоставить разрешения служебному субъекту SQL Server на использование этого нового хранилища.
- Изменить учетные данные SQL Server, используемые ядром СУБД, чтобы отразить новое имя хранилища (при необходимости).
Резервные копии ключей можно восстанавливать в разных регионах Azure при условии, что они остаются в одной географической области или одном национальном облаке: в США, Канаде, Японии, Австралии, Индии, Азиатско-Тихоокеанском регионе, Европе, Бразилии, Китае, правительстве США или Германии.
B. Вопросы и ответы
В хранилище ключей Azure
Как выполняются основные операции с хранилищем ключей Azure?
Асимметричный ключ в хранилище ключей используется для защиты ключей шифрования SQL Server. Только открытая часть асимметричного ключа покидает хранилище, а закрытая часть никогда не экспортируется. Все криптографические операции, использующие асимметричный ключ, выполняются в службе хранилища ключей Azure и защищаются ее системой безопасности.
Что такое URI ключа?
Каждый ключ в хранилище ключей Azure имеет универсальный код ресурса (URI), который можно использовать для ссылки на ключ из приложения. Используйте формат https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey
для получения текущей версии и формат https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87
для получения конкретной версии.
О настройке SQL Server
Какие конечные точки необходимы для соединителя SQL Server?
Соединитель взаимодействует с двумя конечными точками, которые необходимо разрешить. Единственным портом, необходимым для исходящего взаимодействия с этими другими службами, является 443 для HTTPS:
login.microsoftonline.com/*:443
*.vault.azure.net/*:443
Кроме того, проверка списка отзыва сертификатов может создать HTTP-трафик через порт 80.
Примечание.
Использование соединителя SQL Server для Azure Key Vault за брандмауэром или прокси-сервером может повлиять на производительность, если трафик задерживается или блокируется. Ознакомьтесь с Доступом к Azure Key Vault за брандмауэром , чтобы убедиться, что правильные правила установлены.
Как подключиться к Azure Key Vault через прокси-сервер HTTP(S)? Соединитель использует параметры конфигурации прокси-сервера Internet Explorer. Эти параметры можно контролировать с помощью групповой политики или реестра, но важно отметить, что они не являются системными параметрами и должны быть ориентированы на учетную запись службы, на которую запущен экземпляр SQL Server. Если администратор базы данных просматривает или редактирует параметры в Internet Explorer, они будут влиять только на учетную запись администратора базы данных, а не подсистему SQL Server. Интерактивный вход на сервер с использованием сервисной учетной записи не рекомендуется и уже блокируется во многих безопасных средах. Изменения настроенных параметров прокси-сервера могут потребовать перезапуска экземпляра SQL Server, чтобы вступили в силу при первой попытке соединителя подключиться к хранилищу ключей.
Какие размеры ключей в Azure Key Vault поддерживает коннектор SQL Server? Последняя сборка соединителя SQL Server поддерживает ключи Azure Key Vault размером 2048 и 3072.
Примечание.
Представление системы sys.asymmetric_keys
возвращает размер ключа как 2048, даже если для ключа используется размер 3072.
Каковы минимальные уровни разрешений, необходимые для каждого шага конфигурации в SQL Server?
Хотя вы можете выполнить все действия по настройке в качестве члена предопределенных ролей сервера sysadmin, корпорация Майкрософт рекомендует свести к минимуму используемые разрешения. В приведенном ниже списке указаны минимальные уровни разрешений для каждого действия.
Для создания поставщика служб шифрования требуется разрешение
CONTROL SERVER
или членство в предопределенной роли сервера sysadmin .Для изменения параметра конфигурации и выполнения инструкции
RECONFIGURE
должно быть предоставлено разрешениеALTER SETTINGS
на уровне сервера. РазрешениеALTER SETTINGS
неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .Для создания учетных данных требуется разрешение
ALTER ANY CREDENTIAL
.Для добавления учетных данных к имени входа требуется разрешение
ALTER ANY LOGIN
.Для создания асимметричного ключа требуется разрешение
CREATE ASYMMETRIC KEY
.
Как изменить каталог Microsoft Entra по умолчанию, чтобы хранилище ключей создавалось в той же подписке и каталоге, что и служебный принципал, созданный для соединителя SQL Server?
Переход на портал Azure.
В правом верхнем углу страницы выберите значок параметров или профиль пользователя.
На странице каталогов и подписок выберите "Все каталоги", чтобы просмотреть все каталоги Microsoft Entra, к которым вы принадлежите.
Вы можете изменить каталог запуска или переключиться в другой каталог, если у вас несколько каталогов.
Примечание.
Возможно, у вас нет разрешений на изменение каталога по умолчанию в подписке Azure. В этом случае создайте учетную запись службы Microsoft Entra в каталоге по умолчанию, чтобы она была в том же каталоге, что и Azure Key Vault, который будет использоваться позже.
Дополнительные сведения об идентификаторе Microsoft Entra см. в статье о том, как подписки Azure связаны с идентификатором Microsoft Entra.
В. Описания кодов ошибок для коннектора SQL Server
Примечание.
Хотя Microsoft Entra ID — это новое имя для Azure Active Directory (Azure AD), чтобы предотвратить разрушение существующих сред, Azure AD по-прежнему остается во многих жестко запрограммированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.
Коды ошибок поставщика:
Код ошибки | Символ | Описание |
---|---|---|
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. |
Если код ошибки не отображается в этой таблице, ниже приведены некоторые другие причины, по которым может произойти ошибка:
Возможно, у вас нет доступа к Интернету и не удается получить доступ к Azure Key Vault. Проверьте подключение к Интернету.
Служба Azure Key Vault может быть отключена. Просмотрите по адресу azure.status.microsoft. Повторите попытку позднее.
Возможно, вы сняли асимметричный ключ из Azure Key Vault или SQL Server. Восстановите ключ.
Если вы получаете ошибку "Не удается загрузить библиотеку", убедитесь, что у вас установлена соответствующая версия распространяемого компонента Visual Studio C++ на основе используемой версии SQL Server. В следующей таблице указывается, какая версия будет установлена из Центра загрузки Майкрософт.
Журнал событий Windows также фиксирует ошибки, связанные с подключением к SQL Server, что может помочь понять, почему на самом деле происходит ошибка, предоставляя дополнительный контекст. Источником в журнале событий приложений Windows будет "Коннектор SQL Server для Microsoft Azure Key Vault".
Библиотеки среды выполнения C++ для коннектора SQL Server 1.0.5.0
Версия SQL Server | Ссылка для установки распространяемого компонента при использовании соединителя SQL Server 1.0.5.0 |
---|---|
2008, 2008 R2, 2012, 2014 | Распространяемые пакеты Visual C++ для Visual Studio 2013 |
2016, 2017, 2019 | Распространяемый пакет Visual C++ для Visual Studio 2015 |
Библиотеки среды выполнения C++ для соединителя SQL Server 1.0.4.0
Версия SQL Server | Ссылка на установку компонента, подлежащего распространению, при использовании коннектора SQL Server 1.0.4.0. |
---|---|
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Распространяемые пакеты Visual C++ для Visual Studio 2013 |
Дополнительные справочники
Подробнее о расширенном управлении ключами:
Виды шифрования SQL с поддержкой расширенного управления ключами:
Связанные команды Transact-SQL:
Документация по хранилищу ключей Azure.
Связанный контент
- расширяемое управление ключами с помощью Azure Key Vault (SQL Server)
- Использование соединителя SQL Server с компонентами шифрования SQL
- Включен поставщик EKM (параметр конфигурации сервера)
- настройка расширяемого управления ключами SQL Server TDE с помощью Azure Key Vault
- Дополнительные примеры сценариев см. в блоге Прозрачное шифрование данных и расширенное управление ключами SQL Server с помощью Azure Key Vault.