SQL Server コネクタのメンテナンスとトラブルシューティング
適用対象:SQL Server
この記事では、SQL Server コネクタに関する補足情報を取り上げます。 SQL Server コネクタの詳細については、「
Note
Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、この 2 つの名称は置き換え可能です。
A. SQL Server コネクタのメンテナンス手順
キーの交換
Azure Key Vault は、新しいキーを作成し、新しいキーを使用するようにアプリケーションを更新するプロセスであるキーローテーションをサポートしています。 キーのローテーションは、キーが侵害された場合にデータを保護するのに役立つセキュリティのベスト プラクティスです。 SQL Server コネクタは、キーのローテーションをサポートしています。 古いキーを使用してデータベースを復元する必要があるため、古いキーを削除しないでください。 キーをローテーションするには、「Azure Key Vault を使用した SQL Server TDE 拡張キー管理を設定する」で説明されている手順に従ってください。
SQL Server コネクタのアップグレード
1.0.0.440 以前のバージョンは置き換えられ、実稼働環境ではサポートされなくなりました。 バージョン 1.0.1.0 以降は実稼働環境でサポートされます。 以下の手順を使用して、Microsoft ダウンロード センターで利用可能な最新バージョンにアップグレードしてください。
アップグレード
- SQL Server Configuration Managerを使用して SQL Server サービスを停止します。
- コントロールパネル>プログラム>プログラムと機能を使用して古いバージョンをアンインストールします。
- アプリケーション名: SQL Server コネクタ for Microsoft Azure Key Vault
- バージョン: 15.0.300.96 (またはそれ以前)
- DLL ファイルの日付: 2018 年 1 月 30 日 (またはそれ以前)
- Microsoft Azure Key Vault 用の新しい SQL Server コネクタをインストール (アップグレード) します。
- バージョン: 15.0.2000.440
- DLL ファイルの日付: 2024 年 11 月 9 日
- SQL Server サービスを開始します。
- テストで暗号化されたデータベースにアクセスできます。
ロールバック
SQL Server Configuration Managerを使用して SQL Server サービスを停止します。
コントロールパネル>プログラム>プログラムと機能を使用して、新しいバージョンをアンインストールします。
- アプリケーション名: SQL Server コネクタ for Microsoft Azure Key Vault
- バージョン: 15.0.2000.440
- DLL ファイルの日付: 2024 年 11 月 9 日
Microsoft Azure Key Vault 用の古いバージョンの SQL Server Connector をインストールします。
- バージョン: 15.0.300.96
- DLL ファイルの日付: 2018 年 1 月 30 日
SQL Server サービスを開始します。
TDE を使用するデータベースにアクセス可能であることを確認します。
更新プログラムが動作することを検証したら、古い SQL Server Connector フォルダーを削除できます (手順 3 でアンインストールする代わりに名前を変更する場合)。
以前のバージョンの SQL Server コネクタ
以前のバージョンの SQL Server コネクタへのディープ リンク
- 現在: 1.0.5.0 (バージョン 15.0.2000.440) – ファイル日: 2024 年 11 月 9 日
- 1.0.5.0 (バージョン 15.0.2000.440) – ファイルの日付 2020 年 11 月 24 日
- 1.0.5.0 (バージョン 15.0.300.96) – ファイル日付: 2018 年 1 月 30 日
- 1.0.4.0: (バージョン 13.0.811.168)
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 Cumulative Update 17 (CU17) 以降、Microsoft Entra マネージド ID は、Azure Key Vault (AKV) と Azure VM 上の SQL Server 上のマネージド ハードウェア セキュリティ モジュール (HSM) を使用した拡張キー管理 (EKM) でサポートされています (Windows のみ)。 詳細については、Azure Key Vaultを使用した拡張キー管理のマネージド ID のサポート
キーのバックアップと回復
Key Vault は定期的にバックアップする必要があります。 資格情報コンテナー内の非対称キーが失われた場合は、バックアップから復元できます。 このキーは、以前と同じ名前で復元する必要があります。復元は Restore PowerShell コマンドで行います (以下の手順を参照)。
資格情報コンテナーが失なわれた場合は、資格情報コンテナーを再作成し、以前と同じ名前を使用して、非対称キーを資格情報コンテナーに復元します。 資格情報コンテナーの名前は、以前とは別の名前にできます (同じでもかまいません)。 新しい資格情報コンテナーに対するアクセス許可を設定し、SQL Server 暗号化のシナリオに必要なアクセス権を SQL Server サービス プリンシパルに付与します。その後、新しい資格情報コンテナー名が反映されるように SQL Server 資格情報を調整します。
手順の概要を以下に示します。
- コンテナー キーをバックアップします (Backup-AzureKeyVaultKey PowerShell コマンドレットを使用)。
- 資格情報コンテナーの障害の場合は、同じ地理的リージョンに新しい資格情報コンテナーを作成します。 資格情報コンテナーを作成するユーザーは、SQL Server のサービス プリンシパルの設定と同じ既定のディレクトリに存在している必要があります。
- Restore-AzureKeyVaultKey PowerShell コマンドレットを使用して、新しい資格情報コンテナーにキーを復元します。これにより、以前と同じ名前を使用してキーが復元されます。 既に同じ名前のキーが存在する場合、復元は失敗します。
- 新しい資格情報コンテナーを使用するための権限を SQL Server サービス プリンシパルに付与します。
- 必要に応じて、新しい資格情報コンテナー名を反映するように、データベース エンジンが使用する SQL Server 資格情報を変更します。
キーのバックアップは、クラウドの地理的領域または国 (米国、カナダ、日本、オーストラリア、インド、APAC、ヨーロッパ、ブラジル、中国、米国政府、ドイツ) が一致していれば、異なる Azure リージョン間で復元することができます。
B. よく寄せられる質問
Azure Key Vault について
Azure Key Vault との間でキーの処理はどのように行われますか。
キー コンテナー内の非対称キーは、SQL Server の暗号化キーを保護するために使用されます。 資格情報コンテナーから出て行くのは非対称キーの公開部分だけで、秘密の部分がコンテナーからエクスポートされることはありません。 非対称キーを使用するすべての暗号化操作は、Azure Key Vault サービス内で実行され、このサービスのセキュリティによって保護されます。
キーの URI とは何ですか。
Azure Key Vault 内のすべてのキーに、Uniform Resource Identifier (URI) が割り当てられます。アプリケーションからこの URI を使用してキーを参照できます。 常に最新のバージョンを取得するには 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 トラフィックが作成される場合があります。
Note
ファイアウォールまたはプロキシ サーバーの背後で SQL Server Connector for Azure Key Vault を使用すると、トラフィックが遅延またはブロックされた場合にパフォーマンスに影響する可能性があります。 ファイアウォールの背後にある Access 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 キーがサポートされています。
Note
sys.asymmetric_keys
システム ビューでは、キー サイズ 3072 が使用されている場合でも、キー サイズは 2048 として返されます。
SQL Server の各構成手順で最低限必要な権限レベルを教えてください。
すべての構成手順は sysadmin 固定サーバー ロールのメンバーとして実行することもできますが、Microsoft は使用する権限を最小限に抑えることを推奨しています。 次の一覧に、各操作の最小アクセス許可レベルを定義します。
暗号化サービス プロバイダーを作成するには、
CONTROL SERVER
権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。構成オプションを変更して
RECONFIGURE
ステートメントを実行するには、ALTER SETTINGS
サーバー レベル権限が与えられている必要があります。ALTER SETTINGS
権限は、sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。資格情報を作成するには、
ALTER ANY CREDENTIAL
権限が必要です。ログインに資格情報を追加するには、
ALTER ANY LOGIN
権限が必要です。非対称キーを作成するには、
CREATE ASYMMETRIC KEY
権限が必要です。
SQL Server コネクタ用に作成したサービス プリンシパルと同じサブスクリプションおよび ディレクトリでキー コンテナーが作成されるように、既定の Microsoft Entra ディレクトリを変更するにはどうすればよいですか。
Azure ポータルにアクセスします。
ページの右上隅にある [設定] アイコン、またはご自身のユーザー プロファイルを選択します。
[ディレクトリとサブスクリプション] ページで、[すべてのディレクトリ] を選択して、所属するすべての Microsoft Entra ディレクトリを表示します。
スタートアップ ディレクトリを 変更するか、複数のディレクトリがある場合は別のディレクトリに切り替えることができます。
Note
Azure サブスクリプションの既定のディレクトリを実際に変更するためのアクセス許可がない場合があります。 この場合は、既定のディレクトリ内に Microsoft Entra サービス プリンシパルを作成し、後で使用する Azure Key Vault と同じディレクトリ内に存在するようにします。
Microsoft Entra ID の詳細については、「Azure サブスクリプションと Microsoft Entra ID の関係」を参照してください。
C: SQL Server コネクタのエラー コードの説明
Note
Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、この 2 つの名称は置き換え可能です。
プロバイダーのエラー コード:
エラー コード | Symbol | 説明 |
---|---|---|
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 アプリケーション イベント ログのソースは、"SQL Server コネクタ for Microsoft Azure Key Vault" になります。
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++ 再頒布可能パッケージ |
その他の参照情報
拡張キー管理について詳しくは、以下のページを参照してください。
SQL の暗号化が EKM に対応することによって、次のことが可能となります。
関連する Transact-SQL コマンド:
Azure Key Vault のドキュメント:
PowerShell の Azure Key Vault コマンドレット のリファレンス
関連するコンテンツ
- Azure Key Vault (SQL Server) を使用した拡張可能なキー管理
- SQL 暗号化機能への SQL Server コネクタの使用
- EKM プロバイダーが有効になっている (サーバー構成オプション)
- Azure Key Vault を使用して SQL Server TDE 拡張キー管理を設定する
- 追加のサンプル スクリプトについては、「SQL Server Transparent Data Encryption and Extensible Key Management with Azure Key Vault (Azure Key Vault を使用した SQL Server Transparent Data Encryption と拡張キー管理)」のブログをご覧ください。