다음을 통해 공유


SQL Server 커넥터 유지 관리 및 문제 해결

적용 대상:SQL Server

이 문서는 SQL Server 커넥터에 대한 추가 정보를 제공합니다. SQL Server 커넥터에 대한 자세한 내용은 azure Key Vault(SQL Server)사용하여 확장 가능한 키 관리 , Azure Key Vault사용하여 SQL Server TDE 확장 가능 키 관리 설정 , SQL 암호화 기능SQL Server 커넥터 사용 참조하세요.

참고 항목

Microsoft Entra ID는 Azure AD(Azure Active Directory)의 새 이름이지만, 기존 환경의 중단을 방지하기 위해 UI 필드, 연결 공급자, 오류 코드 및 cmdlet과 같은 일부 하드 코딩된 요소에는 여전히 Azure AD가 남아 있습니다. 이 문서에서는 두 이름을 혼용할 수 있습니다.

A. SQL Server 커넥터에 대한 유지 관리 지침

키 회전

Azure Key Vault는 새 키를 만들고 새 키를 사용하도록 애플리케이션을 업데이트하는 프로세스인 키 회전을 지원합니다. 키 회전은 키가 손상된 경우 데이터를 보호하는 데 도움이 되는 보안 모범 사례입니다. SQL Server 커넥터는 키 회전을 지원합니다. 이전 키를 사용하여 데이터베이스를 복원해야 할 수 있으므로 이전 키를 삭제하면 안 됩니다. 키를 회전하려면 새 AKV 키 또는 새 AKV 키 버전으로 비대칭 키 회전의 단계를 수행합니다.

SQL Server 커넥터 업그레이드

1.0.0.440 이전 버전은 교체되었으며 프로덕션 환경에서는 더 이상 지원되지 않습니다. 프로덕션 환경에서는 1.0.1.0 이상 버전이 지원됩니다. Microsoft 다운로드 센터에서 최신 버전으로 업그레이드하려면 다음 지침을 따릅니다.

업그레이드

  1. SQL Server Configuration Manager사용하여 SQL Server 서비스를 중지합니다.
  2. 제어판>프로그램 및 기능>프로그램을 사용하여 이전 버전을 제거합니다.
    1. 애플리케이션 이름: Microsoft Azure 주요 자격 증명 모음용 SQL Server 커넥터
    2. 버전: 15.0.300.96(또는 이전)
    3. DLL 파일 날짜: 2018년 1월 30일(이상)
  3. Microsoft Azure Key Vault용 새 SQL Server 커넥터를 설치(업그레이드)합니다.
    1. 버전: 15.0.2000.440
    2. DLL 파일 날짜: 2024년 11월 9일
  4. SQL Server 서비스를 시작합니다.
  5. 암호화된 데이터베이스 테스트에 액세스할 수 있습니다.

롤백

  1. SQL Server Configuration Manager사용하여 SQL Server 서비스를 중지합니다.

  2. 제어판>프로그램>프로그램 및 기능사용하여 새 버전을 제거합니다.

    1. 애플리케이션 이름: Microsoft Azure 주요 자격 증명 모음용 SQL Server 커넥터
    2. 버전: 15.0.2000.440
    3. DLL 파일 날짜: 2024년 11월 9일
  3. Microsoft Azure Key Vault용 SQL Server 커넥터의 이전 버전을 설치합니다.

    1. 버전: 15.0.300.96
    2. DLL 파일 날짜: 2018년 1월 30일
  4. SQL Server 서비스를 시작합니다.

  5. TDE를 사용하는 데이터베이스에 액세스할 수 있는지 확인합니다.

  6. 업데이트가 작동하는지 유효성을 검사한 후 이전 SQL Server Connector 폴더를 삭제할 수 있습니다(3단계에서 제거하는 대신 이름을 바꾸도록 선택한 경우).

이전 버전의 SQL Server 커넥터

이전 버전의 SQL Server 커넥터 딥 링크

SQL Server 서비스 주체 롤링

SQL Server는 Microsoft Entra ID(이전 Azure Active Directory)에서 만든 서비스 주체를 키 자격 증명 모음에 액세스하는 자격 증명으로 사용합니다. 서비스 주체에는 클라이언트 ID 및 인증 키가 있습니다. SQL Server 자격 증명은 VaultName, 클라이언트 ID인증 키로 설정됩니다. 인증 키는 특정 기간(1년 또는 2년)동안 유효합니다. 기간이 만료되기 전에 서비스 주체에 대한 Microsoft Entra ID에서 새 키를 생성해야 합니다. 그런 다음 SQL Server에서 자격 증명을 변경해야 합니다. Management Studio는 현재 세션에서 자격 증명에 대한 캐시를 유지 관리하므로 자격 증명이 변경되면 Management Studio를 다시 시작해야 합니다.

Azure VM의 SQL Server에 대한 관리 ID 지원

SQL Server 2022 CU17(누적 업데이트 17)부터 Microsoft Entra 관리 ID는 Azure VM(Windows에만 해당)의 SQL Server에서 AKV(Azure Key Vault) 및 HSM(Managed Hardware Security Modules)을 사용하는 EKM(확장 가능 키 관리)에 대해 지원됩니다. 자세한 내용은 Azure Key Vault사용하여 확장 가능한 키 관리에 대한 관리 ID 지원을 참조하세요. SQL Server 커넥터에서 관리 ID를 사용하려면 커넥터 버전이 2024년 11월 1.0.5.0 이상이어야 합니다. Microsoft 다운로드 센터에서 최신 버전을 다운로드하세요.

키 백업 및 복구

키 자격 증명 모음은 정기적으로 백업해야 합니다. 자격 증명 모음의 비대칭 키가 손실되면 백업에서 복원할 수 있습니다. 키는 이전과 동일한 이름을 사용하여 복원해야 하며, Restore PowerShell 명령으로 이를 수행할 수 있습니다(아래 단계 참조).

금고가 손실된 경우, 금고를 다시 만들고 이전과 동일한 이름을 사용하여 비대칭 키를 금고에 복원합니다. 자격 증명 모음 이름은 다를 수 있습니다(또는 이전과 동일). 새 중요 보관소에 대한 액세스 권한을 설정하여 SQL Server 암호화 시나리오에 필요한 액세스 권한을 SQL Server 서비스 주체에게 부여한 다음, 새 보관소 이름이 반영되도록 SQL Server 자격 증명을 조정합니다.

요약하면 다음 단계와 같습니다.

  • 중요 보관소 키를 백업합니다(Backup-AzureKeyVaultKey PowerShell cmdlet 사용).
  • 중요 보관소에 장애가 발생한 경우 동일한 지리적 하위 지역에 새 자격 증명 모음을 만듭니다. 중요 보관소를 만드는 사용자는 SQL Server의 서비스 주체 설정과 동일한 기본 디렉터리에 위치해야 합니다.
  • 이전과 동일한 이름을 사용하여 키를 복원하는 Restore-AzureKeyVaultKey PowerShell cmdlet을 사용하여 새 중요 보관소에 키를 복원합니다. 이미 동일한 이름의 키가 있는 경우 복원에 실패합니다.
  • SQL Server 서비스 주체에 이 새 자격 증명 모음을 사용할 수 있는 권한을 부여합니다.
  • 새 중요 보관소 이름을 반영하도록 데이터베이스 엔진에서 사용하는 SQL Server 자격 증명을 수정합니다(필요한 경우).

키 백업은 동일한 지역 또는 국가(미국, 캐나다, 일본, 오스트레일리아, 인도, APAC, 유럽, 브라질, 중국, 미국 정부 또는 독일) 클라우드에 있는 경우 Azure 지역에서 복원할 수 있습니다.

B. 질문과 대답

Azure 주요 자격 증명 모음에서

키 작업은 Azure Key Vault에서 어떻게 작동하나요?

주요 자격 증명 모음에 있는 비대칭 키는 SQL Server 암호화 키를 보호하는 데 사용됩니다. 비대칭 키의 퍼블릭 부분만 자격 증명 모음을 떠나고 프라이빗 부분은 자격 증명 모음에서 내보내지 않습니다. 비대칭 키를 사용하는 모든 암호화 작업은 Azure Key Vault 서비스 내에서 수행되며, 서비스 보안에 의해 보호됩니다.

키 URI는 무엇인가요?

Azure Key Vault의 모든 키에는 애플리케이션에서 키를 참조하는 데 사용할 수 있는 URI(Uniform Resource Identifier)가 있습니다. 현재 버전을 가져오려면 https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey 형식을 사용하고, 특정 버전을 가져오려면 https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 형식을 사용합니다.

SQL Server 구성 시

SQL Server 커넥터에 액세스해야 하는 엔드포인트는 무엇인가요?

커넥터는 2개의 엔드포인트와 통신하며, 해당 엔드포인트는 허용되어야 합니다. 이러한 다른 서비스에 대한 아웃바운드 통신에 필요한 유일한 포트는 HTTPS의 경우 443입니다.

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

또한 인증서 해지 목록을 확인하면 포트 80에서 HTTP 트래픽이 발생할 수 있습니다.

참고 항목

방화벽 또는 프록시 서버의 후방에 Azure Key Vault용 SQL Server 커넥터를 사용하면 트래픽이 지연되거나 차단되는 경우 성능에 영향을 줄 수 있습니다. 올바른 규칙을 적용하려면 방화벽 뒤에 있는 Azure Key Vault 액세스를 숙지합니다.

HTTP(S) 프록시 서버를 통해 Azure Key Vault에 연결하려면 어떻게 하나요? 커넥터는 Internet Explorer의 프록시 구성 설정을 사용합니다. 이러한 설정은 그룹 정책 또는 레지스트리를 통해 제어할 수 있지만, 시스템 전체 설정이 아니며 SQL Server 인스턴스를 실행하는 서비스 계정을 대상으로 해야 합니다. 데이터베이스 관리자가 Internet Explorer에서 설정을 보거나 편집하는 경우 SQL Server 엔진이 아닌 데이터베이스 관리자의 계정에만 영향을 미칩니다. 서비스 계정을 사용하여 대화형으로 서버에 로그온하는 것은 권장되지 않으며 여러 보안 환경에서 차단됩니다. 구성된 프록시 설정의 변경 사항은 커넥터가 키 자격 증명 모음에 처음 연결을 시도할 때 캐시되므로 적용하려면 SQL Server 인스턴스를 다시 시작해야 할 수 있습니다.

SQL Server 커넥터에서 지원되는 Azure Key Vault의 키 크기는 무엇인가요? SQL Server 커넥터의 최신 빌드는 2048 및 3072 크기의 Azure Key Vault 키를 지원합니다.

참고 항목

sys.asymmetric_keys 시스템 뷰는 키 크기 3072를 사용하는 경우에도 키 크기를 2048로 반환합니다.

SQL Server의 각 구성 단계에 필요한 최소 권한 수준은 무엇인가요?

sysadmin 고정 서버 역할의 구성원은 모든 구성 단계를 수행할 수 있지만, Microsoft는 사용하는 권한을 최소화할 것을 권장합니다. 다음 목록은 각 작업에 대한 최소 권한 수준을 정의합니다.

  • 암호화 공급자를 만들려면 CONTROL SERVER 고정 서버 역할의 권한 또는 멤버십이 필요합니다.

  • 구성 옵션을 변경하고 RECONFIGURE 문을 실행하려면 ALTER SETTINGS 서버 수준 권한이 있어야 합니다. ALTER SETTINGS 권한은 sysadmin 및 serveradmin 고정 서버 역할에 의해 암시적으로 부여됩니다.

  • 자격 증명을 만들려면 ALTER ANY CREDENTIAL 권한이 필요합니다.

  • 로그인에 자격 증명을 추가하려면 ALTER ANY LOGIN 권한이 필요합니다.

  • 비대칭 키를 만들려면 CREATE ASYMMETRIC KEY 권한이 필요합니다.

SQL Server 커넥터에 대해 만든 서비스 주체와 동일한 구독 및 디렉터리에서 키 자격 증명 모음이 생성되도록 기본 Microsoft Entra 디렉터리를 변경하려면 어떻게 해야 하나요?

Microsoft Entra ID 변경 기본 디렉터리 도움말 단계를 보여주는 스크린샷.

  1. Azure Portal로 이동합니다.

  2. 페이지 오른쪽 상단에서 설정 아이콘 또는 사용자 프로필을 선택합니다.

  3. 디렉터리 + 구독 페이지에서 모든 디렉터리를 선택하여 속한 모든 Microsoft Entra 디렉터리를 확인합니다.

  4. 시작 디렉터리를 변경하거나 디렉터리가 여러 개 있는 경우 다른 디렉터리로 전환할 수 있습니다.

    참고 항목

    Azure 구독의 기본 디렉터리를 실제로 변경할 수 있는 권한이 없을 수 있습니다. 이 경우 기본 디렉터리 내에 Microsoft Entra 서비스 주체를 만들어 나중에 사용되는 Azure Key Vault와 동일한 디렉터리에 위치하도록 합니다.

Microsoft Entra ID에 대한 자세한 내용은 Azure 구독이 Microsoft Entra ID와 관련된 방법을 참조하세요.

C. SQL Server 커넥터에 대한 오류 코드 설명

참고 항목

Microsoft Entra ID는 Azure AD(Azure Active Directory)의 새 이름이지만, 기존 환경의 중단을 방지하기 위해 UI 필드, 연결 공급자, 오류 코드 및 cmdlet과 같은 일부 하드 코딩된 요소에는 여전히 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.
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에서 비대칭 키를 삭제했을 수 있습니다. 키를 복원합니다.

  • "라이브러리를 로드할 수 없습니다" 오류가 표시되는 경우 실행 중인 SQL Server 버전에 따라 적절한 버전의 Visual Studio C++ 재배포판이 설치되어 있는지 확인합니다. 다음 표에서는 Microsoft 다운로드 센터에서 설치할 버전을 지정합니다.

또한 Windows 이벤트 로그에는 SQL Server 커넥터와 관련된 오류도 기록되므로 오류가 실제로 발생하는 이유에 대한 추가 컨텍스트를 파악하는 데 도움이 될 수 있습니다. Windows 애플리케이션 이벤트 로그의 소스는 "Microsoft Azure 주요 자격 증명 모음용 SQL Server 커넥터"입니다.

SQL Server 커넥터 1.0.5.0용 C++ 런타임 라이브러리

SQL Server 버전: SQL Server 커넥터 1.0.5.0을 사용 중인 경우 재배포 가능한 설치 링크
2008, 2008 R2, 2012, 2014 Visual Studio 2013용 Visual C++ 재배포 가능 패키지
2016, 2017, 2019 Visual Studio 2015용 Visual C++ 재배포 가능 패키지

SQL Server 커넥터 1.0.4.0용 C++ 런타임 라이브러리

SQL Server 버전: SQL Server 커넥터 1.0.4.0을 사용하는 경우 재배포 가능 설치 링크
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 Visual Studio 2013용 Visual C++ 재배포 가능 패키지

추가 참조

확장 가능 키 관리에 대한 자세한 정보:

EKM을 지원하는 SQL 암호화:

관련 Transact-SQL 명령:

Azure Key Vault 설명서: