次の方法で共有


SQL Server コネクタのメンテナンスとトラブルシューティング

適用対象: SQL Server

この記事では、SQL Server コネクタに関する補足情報を取り上げます。 SQL Server コネクタの詳細については、「Azure Key Vault を使用する拡張キー管理 (SQL Server)」、「Azure Key Vault を使用した拡張キー管理のセットアップ手順」、「SQL 暗号化機能への 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 ダウンロード センターで利用可能な最新バージョンにアップグレードしてください。

アップグレード

  1. SQL Server 構成マネージャーを使用して、SQL Server サービスを停止します
  2. [コントロール パネル] > [プログラム] > [プログラムと機能] を使用して、古いバージョンをアンインストールします
    1. アプリケーション名: SQL Server コネクタ for Microsoft Azure Key Vault
    2. バージョン: 15.0.300.96 (またはそれ以前)
    3. DLL ファイルの日付: 2018/01/30 (またはそれ以前)
  3. 新しい SQL Server コネクタ for Microsoft Azure Key Vault をインストール (アップグレード) します
    1. バージョン: 15.0.2000.440
    2. DLL ファイルの日付: 2020/09/11
  4. SQL Server サービスを開始します
  5. 暗号化されたデータベースがアクセス可能であることをテストする

ロールバック

  1. SQL Server 構成マネージャーを使用して、SQL Server サービスを停止します

  2. [コントロール パネル] > [プログラム] > [プログラムと機能] を使用して、新しいバージョンをアンインストールします

    1. アプリケーション名: SQL Server コネクタ for Microsoft Azure Key Vault
    2. バージョン: 15.0.2000.440
    3. DLL ファイルの日付: 2020/11/24
  3. 古いバージョンの SQL Server コネクタ for Microsoft Azure Key Vault をインストールします

    1. バージョン: 15.0.300.96
    2. DLL ファイルの日付: 2018/01/30
  4. SQL Server サービスを開始します

  5. TDE が使用されているデータベースにアクセスできることを確認する

  6. 更新が正常に行われたことを確認したら、古い SQL Server コネクタ フォルダーは削除できます (手順 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 を再起動する必要があります。

キーのバックアップと回復

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

キーサイズ 3072 が使用されている場合でも、"sys.asymmetric_keys" ビューではキー サイズが 2048 として報告されます。 これはこのビューの既知のギャップであり、SQL Server 製品チームは今後のリリースでこれに対処します。

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 ディレクトリを変更するにはどうすればよいですか。

Microsoft Entra ID 変更の既定のディレクトリ ヘルプ手順を示すスクリーンショット。

  1. Azure ポータルにアクセスします。

  2. ページの右上隅にある [設定] アイコン、またはご自身のユーザー プロファイルを選択します。

  3. [ディレクトリとサブスクリプション] ページで、[すべてのディレクトリ] を選択して、所属するすべての Microsoft Entra ディレクトリを表示します。

  4. スタートアップ ディレクトリを 変更するか、複数のディレクトリがある場合は別のディレクトリに切り替えることができます。

    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 操作は成功しました。
1 scp_err_Failure 操作は失敗しました。
2 scp_err_InsufficientBuffer バッファーに割り当てるメモリ量を増やすようエンジンに指示が出されます。
3 scp_err_NotSupported この操作はサポートされていません。 たとえば、指定されたキーの種類やアルゴリズムは、EKM プロバイダーでサポートされていません。
4 scp_err_NotFound EKM プロバイダーが、指定されたキーまたはアルゴリズムを検出できませんでした。
5 scp_err_AuthFailure EKM プロバイダーでの認証に失敗しました。
6 scp_err_InvalidArgument 指定された引数は無効です。
7 scp_err_ProviderError 特定できないエラーが EKM プロバイダーで発生したことを SQL エンジンが検出しました。
401 acquireToken 要求に対し、サーバーから 401 応答が返されました。 クライアント ID とシークレットが正しいことと、資格情報の文字列が AAD クライアント ID とシークレットのハイフンなしの連結になっていることを確認してください。
404 getKeyByName キー名が見つからなかったために、サーバーが 404 で応答しました。 キー名が Key Vault に存在していることを確認してください。
2049 scp_err_KeyNameDoesNotFitThumbprint キー名が長すぎて、SQL エンジンの拇印に収まりません。 キー名が 26 文字を超えないようにしてください。
2050 scp_err_PasswordTooShort AAD クライアント ID とシークレットを連結したシークレット文字列が 32 文字未満です。
2051 scp_err_OutOfMemory SQL エンジンのメモリ不足から、EKM プロバイダーに必要なメモリを割り当てることができませんでした。
2052 scp_err_ConvertKeyNameToThumbprint キー名をサムプリントに変換できませんでした。
2053 scp_err_ConvertThumbprintToKeyName サムプリントをキー名に変換できませんでした。
2057 scp_err_ThumbprintExistedInRegistry キーのサムプリントは、別のキー URI にマップされた Windows レジストリに既に存在します。
2058 scp_err_FailureInRegistry レジストリで操作を実行できませんでした。 SQL Server サービス アカウントには、レジストリ キーを作成するためのアクセス許可がありません。
3000 ErrorSuccess AKV 操作は成功しました。
3001 ErrorUnknown 特定できないエラーが発生して AKV 操作に失敗しました。
3002 ErrorHttpCreateHttpClientOutOfMemory メモリ不足により、AKV 操作に使用する HttpClient を作成できません。
3003 ErrorHttpOpenSession ネットワーク エラーのため、HTTP セッションを開くことができません。
3004 ErrorHttpConnectSession ネットワーク エラーのため、HTTP セッションを接続できません。
3005 ErrorHttpAttemptConnect ネットワーク エラーのため、接続を試行できません。
3006 ErrorHttpOpenRequest ネットワーク エラーのため、要求を開くことができません。
3007 ErrorHttpAddRequestHeader 要求ヘッダーを追加できません。
3008 ErrorHttpSendRequest ネットワーク エラーのため、要求を送信できません。
3009 ErrorHttpGetResponseCode ネットワーク エラーのため、応答コードを取得できません。
3010 ErrorHttpResponseCodeUnauthorized 要求に対し、サーバーから 401 応答が返されました。
3011 ErrorHttpResponseCodeThrottled サーバーによって要求が調整されています。
3012 ErrorHttpResponseCodeClientError コネクタから送信された要求が無効です。 これは通常、キー名が無効であるか、キー名に無効な文字が含まれることを意味します。
3013 ErrorHttpResponseCodeServerError サーバーから 500 ~ 600 の応答コードが返されました。
3014 ErrorHttpQueryHeader 応答ヘッダーを照会できません。
3015 ErrorHttpQueryHeaderOutOfMemoryCopyHeader メモリ不足のため、応答ヘッダーをコピーできません。
3016 ErrorHttpQueryHeaderOutOfMemoryReallocBuffer バッファーの再割り当て時にメモリ不足が発生したため、応答ヘッダーを照会できません。
3017 ErrorHttpQueryHeaderNotFound クエリ ヘッダーが応答に見つかりません。
3018 ErrorHttpQueryHeaderUpdateBufferLength 応答ヘッダーを照会しているときにバッファーの長さを更新することはできません。
3019 ErrorHttpReadData ネットワーク エラーのため、応答データを読み取ることができません。
3076 ErrorHttpResourceNotFound キー名が見つからなかったために、サーバーが 404 で応答しました。 キー名がコンテナーに存在していることを確認してください。
3077 ErrorHttpOperationForbidden ユーザーに操作を実行するための適切な権限がないため、サーバーが 403 で応答しました。 指定された操作に対する権限があることを確認してください。 コネクタが正常に機能するには、少なくとも "get、list、wrapKey、unwrapKey" 権限が必要です。
3100 ErrorHttpCreateHttpClientOutOfMemory メモリ不足により、AKV 操作に使用する HttpClient を作成できません。
3101 ErrorHttpOpenSession ネットワーク エラーのため、HTTP セッションを開くことができません。
3102 ErrorHttpConnectSession ネットワーク エラーのため、HTTP セッションを接続できません。
3103 ErrorHttpAttemptConnect ネットワーク エラーのため、接続を試行できません。
3104 ErrorHttpOpenRequest ネットワーク エラーのため、要求を開くことができません。
3105 ErrorHttpAddRequestHeader 要求ヘッダーを追加できません。
3106 ErrorHttpSendRequest ネットワーク エラーのため、要求を送信できません。
3107 ErrorHttpGetResponseCode ネットワーク エラーのため、応答コードを取得できません。
3108 ErrorHttpResponseCodeUnauthorized 要求に対し、サーバーから 401 応答が返されました。 クライアント ID とシークレットが正しいことと、資格情報の文字列が AAD クライアント ID とシークレットのハイフンなしの連結になっていることを確認してください。
3109 ErrorHttpResponseCodeThrottled サーバーによって要求が調整されています。
3110 ErrorHttpResponseCodeClientError 要求が無効です。 これは通常、キー名が無効であるか、キー名に無効な文字が含まれることを意味します。
3111 ErrorHttpResponseCodeServerError サーバーから 500 ~ 600 の応答コードが返されました。
3112 ErrorHttpResourceNotFound キー名が見つからなかったために、サーバーが 404 で応答しました。 キー名が Key Vault に存在していることを確認してください。
3113 ErrorHttpOperationForbidden ユーザーに操作を実行するための適切な権限がないため、サーバーが 403 で応答しました。 指定された操作の権限があることを確認してください。 "get、wrapKey、unwrapKey" 以上の権限が必要です。
3114 ErrorHttpQueryHeader 応答ヘッダーを照会できません。
3115 ErrorHttpQueryHeaderOutOfMemoryCopyHeader メモリ不足のため、応答ヘッダーをコピーできません。
3116 ErrorHttpQueryHeaderOutOfMemoryReallocBuffer バッファーの再割り当て時にメモリ不足が発生したため、応答ヘッダーを照会できません。
3117 ErrorHttpQueryHeaderNotFound クエリ ヘッダーが応答に見つかりません。
3118 ErrorHttpQueryHeaderUpdateBufferLength 応答ヘッダーを照会しているときにバッファーの長さを更新することはできません。
3119 ErrorHttpReadData ネットワーク エラーのため、応答データを読み取ることができません。
3120 ErrorHttpGetResponseOutOfMemoryCreateTempBuffer 一時バッファーの作成時にメモリ不足が発生したため、応答本文を取得できません。
3121 ErrorHttpGetResponseOutOfMemoryGetResultString 結果文字列の取得時にメモリ不足が発生したため、応答本文を取得できません。
3122 ErrorHttpGetResponseOutOfMemoryAppendResponse 応答の追加時にメモリ不足が発生したため、応答本文を取得できません。
3200 ErrorGetAADValuesOutOfMemoryConcatPath パスの連結時にメモリ不足が発生したため、Azure Active Directory チャレンジ ヘッダー値を取得できません。
3201 ErrorGetAADDomainUrlStartPosition Azure Active Directory ドメイン URL の開始位置が見つかりません。応答チャレンジ ヘッダーの形式が不正です。
3202 ErrorGetAADDomainUrlStopPosition Azure Active Directory ドメイン URL の終了位置が見つかりません。応答チャレンジ ヘッダーの形式が不正です。
3203 ErrorGetAADDomainUrlMalformatted Azure Active Directory 応答チャレンジ ヘッダーの形式が不正です。AAD ドメイン URL が含まれていません。
3204 ErrorGetAADDomainUrlOutOfMemoryAlloc Azure Active Directory ドメイン URL のバッファー割り当て時にメモリ不足が発生しました。
3205 ErrorGetAADTenantIdOutOfMemoryAlloc Azure Active Directory tenantId のバッファー割り当て時にメモリ不足が発生しました。
3206 ErrorGetAKVResourceUrlStartPosition Azure Key Vault リソース URL の開始位置が見つかりません。応答チャレンジ ヘッダーの形式が不正です。
3207 ErrorGetAKVResourceUrlStopPosition Azure Key Vault リソース URL の終了位置が見つかりません。応答チャレンジ ヘッダーの形式が不正です。
3208 ErrorGetAKVResourceUrlOutOfMemoryAlloc Azure Key Vault リソース URL のバッファー割り当て時にメモリ不足が発生しました。
3300 ErrorGetTokenOutOfMemoryConcatPath 要求パスの連結時にメモリ不足が発生したため、トークンを取得できません。
3301 ErrorGetTokenOutOfMemoryConcatBody 応答本文の連結時にメモリ不足が発生したため、トークンを取得できません。
3302 ErrorGetTokenOutOfMemoryConvertResponseString 応答文字列の変換時にメモリ不足が発生したため、トークンを取得できません。
3303 ErrorGetTokenBadCredentials 資格情報が間違っているため、トークンを取得できません。 資格情報文字列または証明書が有効であることを確認してください。
3304 ErrorGetTokenFailedToGetToken 資格情報は正しいですが、操作で有効なトークンを取得できませんでした。
3305 ErrorGetTokenRejected トークンは有効ですが、サーバーによって拒否されています。
3306 ErrorGetTokenNotFound 応答にトークンが見つかりません。
3307 ErrorGetTokenJsonParser サーバーの JSON 応答を解析できません。
3308 ErrorGetTokenExtractToken JSON 応答からトークンを抽出できません。
3400 ErrorGetKeyByNameOutOfMemoryConvertResponseString 応答文字列の変換時にメモリ不足が発生したため、名前でキーを取得できません。
3401 ErrorGetKeyByNameOutOfMemoryConcatPath パスの連結時にメモリ不足が発生したため、名前でキーを取得できません。
3402 ErrorGetKeyByNameOutOfMemoryConcatHeader ヘッダーの連結時にメモリ不足が発生したため、名前でキーを取得できません。
3403 ErrorGetKeyByNameNoResponse サーバーから応答がないため、名前でキーを取得できません。
3404 ErrorGetKeyByNameJsonParser JSON 応答の解析に失敗したため、名前でキーを取得できません。
3405 ErrorGetKeyByNameExtractKeyNode 応答からキー ノードを抽出できなかったため、名前でキーを取得できません。
3406 ErrorGetKeyByNameExtractKeyId 応答からキー ID を抽出できなかったため、名前でキーを取得できません。
3407 ErrorGetKeyByNameExtractKeyType 応答からキーの種類を抽出できなかったため、名前でキーを取得できません。
3408 ErrorGetKeyByNameExtractKeyN 応答からキー N を抽出できなかったため、名前でキーを取得できません。
3409 ErrorGetKeyByNameBase64DecodeN N の Base64 デコードに失敗したため、名前でキーを取得できません。
3410 ErrorGetKeyByNameExtractKeyE 応答からキー E を抽出できなかったため、名前でキーを取得できません。
3411 ErrorGetKeyByNameBase64DecodeE E の Base64 デコードに失敗したため、名前でキーを取得できません。
3412 ErrorGetKeyByNameExtractKeyUri 応答からキー URI を抽出できません。
3500 ErrorBackupKeyOutOfMemoryConvertResponseString 応答文字列の変換時にメモリ不足が発生したため、キーをバックアップできません。
3501 ErrorBackupKeyOutOfMemoryConcatPath パスの連結時にメモリ不足が発生したため、キーをバックアップできません。
3502 ErrorBackupKeyOutOfMemoryConcatHeader 要求ヘッダーの連結時にメモリ不足が発生したため、キーをバックアップできません。
3503 ErrorBackupKeyNoResponse サーバーから応答がないため、キーをバックアップできません。
3504 ErrorBackupKeyJsonParser JSON 応答の解析に失敗したため、キーをバックアップできません。
3505 ErrorBackupKeyExtractValue JSON 応答から値を抽出できなかったため、キーをバックアップできません。
3506 ErrorBackupKeyBase64DecodeValue 値フィールドの Base64 デコードに失敗したため、キーをバックアップできません。
3600 ErrorWrapKeyOutOfMemoryConvertResponseString 応答文字列の変換時にメモリ不足が発生したため、キーの折り返しができません。
3601 ErrorWrapKeyOutOfMemoryConcatPath パスの連結時にメモリ不足が発生したため、キーの折り返しができません。
3602 ErrorWrapKeyOutOfMemoryConcatHeader ヘッダーの連結時にメモリ不足が発生したため、キーの折り返しができません。
3603 ErrorWrapKeyOutOfMemoryConcatBody 本文の連結時にメモリ不足が発生したため、キーの折り返しができません。
3604 ErrorWrapKeyOutOfMemoryConvertEncodedBody エンコードされた本文の変換時にメモリ不足が発生したため、キーの折り返しができません。
3605 ErrorWrapKeyBase64EncodeKey キーを Base64 エンコードできなかったため、キーの折り返しができません。
3606 ErrorWrapKeyBase64DecodeValue 応答値の Base64 デコードに失敗したため、キーの折り返しができません。
3607 ErrorWrapKeyJsonParser JSON 応答の解析に失敗したため、キーの折り返しができません。
3608 ErrorWrapKeyExtractValue 応答から値を抽出できなかったため、キーの折り返しができません。
3609 ErrorWrapKeyNoResponse サーバーから応答がないため、キーの折り返しができません。
3700 ErrorUnwrapKeyOutOfMemoryConvertResponseString 応答文字列の変換時にメモリ不足が発生したため、キーの折り返しを解除できません。
3701 ErrorUnwrapKeyOutOfMemoryConcatPath パスの連結時にメモリ不足が発生したため、キーの折り返しを解除できません。
3702 ErrorUnwrapKeyOutOfMemoryConcatHeader ヘッダーの連結時にメモリ不足が発生したため、キーの折り返しを解除できません。
3703 ErrorUnwrapKeyOutOfMemoryConcatBody 本文の連結時にメモリ不足が発生したため、キーの折り返しを解除できません。
3704 ErrorUnwrapKeyOutOfMemoryConvertEncodedBody エンコードされた本文の変換時にメモリ不足が発生したため、キーの折り返しを解除できません。
3705 ErrorUnwrapKeyBase64EncodeKey キーを Base64 エンコードできなかったため、キーの折り返しを解除できません。
3706 ErrorUnwrapKeyBase64DecodeValue 応答値の Base64 デコードに失敗したため、キーの折り返しを解除できません。
3707 ErrorUnwrapKeyJsonParser 応答から値を抽出できなかったため、キーの折り返しを解除できません。
3708 ErrorUnwrapKeyExtractValue 応答から値を抽出できなかったため、キーの折り返しを解除できません。
3709 ErrorUnwrapKeyNoResponse サーバーから応答がないため、キーの折り返しを解除できません。
3800 ErrorSecretAuthParamsGetRequestBody AAD clientId とシークレットを使用して要求本文を作成するときにエラーが発生しました。
3801 ErrorJWTTokenCreateHeader AAD での認証用に JWT トークン ヘッダーを作成するときにエラーが発生しました。
3802 ErrorJWTTokenCreatePayloadGUID AAD での認証用に JWT トークン ペイロードの GUID を作成するときにエラーが発生しました。
3803 ErrorJWTTokenCreatePayload AAD での認証用に JWT トークン ペイロードを作成するときにエラーが発生しました。
3804 ErrorJWTTokenCreateSignature AAD での認証用に JWT トークン署名を作成するときにエラーが発生しました。
3805 ErrorJWTTokenSignatureHashAlg AAD での認証用に SHA 256 ハッシュ アルゴリズムを取得するときにエラーが発生しました。
3806 ErrorJWTTokenSignatureHash JWT トークンによる AAD での認証用に SHA 256 ハッシュを作成するときにエラーが発生しました。
3807 ErrorJWTTokenSignatureSignHash AAD での認証用に JWT トークン ハッシュに署名するときにエラーが発生しました。
3808 ErrorJWTTokenCreateToken AAD での認証用に JWT トークンを作成するときにエラーが発生しました。
3809 ErrorPfxCertAuthParamsImportPfx AAD での認証用に Pfx 証明書をインポートするときにエラーが発生しました。
3810 ErrorPfxCertAuthParamsGetThumbprint AAD での認証用に Pfx 証明書から拇印を取得するときにエラーが発生しました。
3811 ErrorPfxCertAuthParamsGetPrivateKey AAD での認証用に Pfx 証明書から秘密キーを取得するときにエラーが発生しました。
3812 ErrorPfxCertAuthParamsSignAlg Pfx 証明書による AAD での認証用に RSA 署名アルゴリズムを取得するときにエラーが発生しました。
3813 ErrorPfxCertAuthParamsImportForSign AAD での認証用に RSA 署名用の Pfx 秘密キーをインポートするときにエラーが発生しました。
3814 ErrorPfxCertAuthParamsCreateRequestBody AAD での認証用に Pfx 証明書から要求本文を作成するときにエラーが発生しました。
3815 ErrorPEMCertAuthParamsGetThumbprint AAD での認証用に拇印を Base64 デコードするときにエラーが発生しました。
3816 ErrorPEMCertAuthParamsGetPrivateKey AAD での認証用に PEM から RSA 秘密キーを取得するときにエラーが発生しました。
3817 ErrorPEMCertAuthParamsSignAlg PEM 秘密キーによる AAD での認証用に RSA 署名アルゴリズムを取得するときにエラーが発生しました。
3818 ErrorPEMCertAuthParamsImportForSign AAD での認証用に RSA 署名用の PEM 秘密キーをインポートするときにエラーが発生しました。
3819 ErrorPEMCertAuthParamsCreateRequestBody AAD での認証用に PEM 秘密キーから要求本文を作成するときにエラーが発生しました。
3820 ErrorLegacyPrivateKeyAuthParamsSignAlg Legacy 秘密キーによる AAD での認証用に RSA 署名アルゴリズムを取得するときにエラーが発生しました。
3821 ErrorLegacyPrivateKeyAuthParamsImportForSign AAD での認証用に RSA 署名用の Legacy 秘密キーをインポートするときにエラーが発生しました。
3822 ErrorLegacyPrivateKeyAuthParamsCreateRequestBody AAD での認証用に Legacy 秘密キーから要求本文を作成するときにエラーが発生しました。
3900 ErrorAKVDoesNotExist インターネット名未解決エラー。 これは通常、Azure Key Vault が削除されていることを示します。
4000 ErrorCreateKeyVaultRetryManagerOutOfMemory メモリ不足のため、AKV 操作に使用する RetryManager を作成できません。

この表に記載されていないエラー コードについて、その他の考えられる原因を以下に示します。

  • インターネットにアクセスできない可能性があるか、Azure Key Vault にアクセスできません。 インターネット接続を確認してください。

  • Azure Key Vault サービスがダウンしている可能性があります。 後でもう一度試してください。

  • 非対称キーが 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 のドキュメント: