ADVERTISEMENT

【Excel】Power QueryでSQL Server接続時に暗号化エラーが出る時の確認手順

【Excel】Power QueryでSQL Server接続時に暗号化エラーが出る時の確認手順
🛡️ 超解決

ExcelのPower QueryでSQL Serverに接続しようとした際に、暗号化に関するエラーが表示されるケースがあります。このエラーは、サーバー側の設定、クライアント側のドライバ、またはWindowsのTLS構成が原因で発生します。多くの場合、エラー文言だけを見てもどこに問題があるのか判断が難しく、原因の切り分けに時間を要します。本記事では、代表的な暗号化エラーの原因と、Power Queryを使用する際の具体的な確認手順をまとめました。

【要点】この記事で確認すること

  • 最初に見る場所: SQL Server Management Studio(SSMS)で同じ接続情報を使って接続できるかどうか。SSMSで成功すれば、Power Query固有の問題に絞り込めます。
  • 切り分けの軸: エラーが「サーバー側の暗号化設定の不一致」か「クライアント側のTLSバージョン未対応」かを、エラーメッセージとWindowsイベントログで判断します。
  • 注意点: 会社PCではレジストリのTLS設定変更やODBCドライバのアップデートに管理者権限が必要です。自己判断で変更せず、必ずIT管理者に相談してください。

ADVERTISEMENT

1. 暗号化エラーの主な原因

Power QueryからSQL Serverへ接続する際、データは暗号化されて転送されます。この暗号化に失敗すると、以下のようなエラーが表示されます。

  • 「接続が正常に確立されましたが、ログイン中にエラーが発生しました。 (プロバイダ: SSL プロバイダ、エラー: 0 – サーバーによって証明書が拒否されました。)」 … サーバーがクライアントの証明書を検証できないか、クライアントがサーバーの証明書を信頼できない場合に発生します。
  • 「指定されたサーバーに接続できませんでした。 (プロバイダ: 名前付きパイプ プロバイダ、エラー: 40 – SQL Server への接続を開けませんでした)」 … 暗号化エラーと同時に表示されることもあり、実際には暗号化設定の不一致が原因のことがあります。
  • 「TLS 1.2 への接続に失敗しました」 … クライアントOSやドライバがTLS 1.2以降をサポートしていない場合に発生します。

原因を大きく分類すると、サーバー側の「Force Encryption」設定、またはクライアント側の「SSL/TLS設定」「ODBCドライバのバージョン」の3つが代表的です。以降の章で、それぞれの確認手順を説明します。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. エラーメッセージから原因を特定する

最初に、エラーメッセージの詳細を確認してください。Power Queryの接続設定で表示されるエラーダイアログは、多くの場合「詳細」ボタンをクリックすると技術的なメッセージが表示されます。そこに「SSL_PROVIDER」や「TLS」の文字列が含まれていれば、暗号化周りの問題である可能性が高いです。

エラーメッセージのキーワード 主な原因 優先確認項目
証明書が拒否されました サーバー証明書をクライアントが信頼していない(CA未登録など) Power Queryの「暗号化をサポートする」設定、または接続文字列のTrustServerCertificate
TLS 1.2 クライアントまたはサーバーがTLS 1.2未対応 WindowsのTLS設定、ODBCドライバのバージョン
SSLプロバイダ エラー 0 サーバー側でForce Encryptionが有効だが、クライアントがSSL/TLSに対応していない Power Queryのデータソース設定で「暗号化を使用」がオフになっていないか

上記の表を参考に、ご自身のエラーがどのパターンに該当するかを確認してください。次章では、クライアント側で実施できる具体的な確認手順を説明します。

3. クライアント側の確認手順

3.1 Power Queryのデータソース設定を確認する

Power QueryでSQL Serverへの接続を作成するとき、接続設定に「暗号化をサポートする」というオプションが存在します。この設定がオフになっていると、サーバー側で暗号化が強制されている場合にエラーになります。以下の手順で確認してください。

  1. Excelの「データ」タブ → 「データの取得」 → 「データベースから」 → 「SQL Serverデータベースから」を選択します。
  2. サーバー名とデータベース名を入力し、「詳細設定」をクリックします。
  3. 「接続文字列を設定する」にチェックを入れ、既存の接続文字列を確認します。もし自分で設定する場合は、以下のような文字列を使用します。
  4. 接続文字列例:Server=myServer;Database=myDB;Trusted_Connection=True;TrustServerCertificate=True;
  5. 「暗号化をサポートする」チェックボックスがオンになっていることを確認します。オフの場合はオンにしてテスト接続を行ってください。

なお、接続文字列に「TrustServerCertificate=True」を追加すると、サーバー証明書の検証をスキップできる場合があります。ただし、これはテスト環境以外では推奨されませんので、管理者と相談の上で使用してください。

3.2 ODBCドライバのバージョンとTLS対応を確認する

Power Queryは内部的にSQL Server用のODBCドライバを使用します。ドライバのバージョンが古いとTLS 1.2に対応していないため、暗号化エラーが発生することがあります。以下の手順で現在のドライババージョンを確認し、必要に応じて更新してください。

  1. Windowsの「ODBCデータソースアドミニストレーター」を開きます(32ビット版と64ビット版の両方を確認してください)。
  2. 「ドライバ」タブで「SQL Server」または「ODBC Driver 17 for SQL Server」などのエントリを見つけ、バージョン情報を確認します。
  3. バージョンが13.0未満の場合は、Microsoft ODBC Driver 17 for SQL Serverに更新することを検討してください。
  4. ドライバのインストールには管理者権限が必要です。IT管理者に依頼するか、会社のソフトウェア配布方法に従ってください。

3.3 WindowsのTLS設定を確認する

Windows 10/11では、セキュリティ強化のためにTLS 1.0/1.1が無効化されていることがあります。SQL Serverが古いTLSバージョンしかサポートしていない場合、接続時に暗号化エラーが発生します。以下の手順でTLS設定を確認します。

  1. レジストリエディターを開きます(管理者権限が必要)。
  2. キー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols」を確認します。
  3. 「TLS 1.2」の下の「Client」キーに「DisabledByDefault」が「0」で「Enabled」が「1」になっていることを確認します。存在しない場合は手動で作成する必要があります。
  4. 「TLS 1.0」と「TLS 1.1」が無効化されている場合、SQL Serverのバージョンによっては接続できません。その場合はサーバー側の対応が必要です。

レジストリの変更はシステム全体に影響するため、必ずIT管理者の指示を仰いでください。

ADVERTISEMENT

4. サーバー側の確認依頼(管理者向け)

クライアント側で問題が見つからない場合、SQL Server側の設定が原因の可能性があります。以下の情報をまとめて、データベース管理者(DBA)またはIT管理者に確認を依頼してください。

  • Force Encryption設定: SQL Server構成マネージャーで「Force Encryption」が有効になっているかどうか。有効の場合、クライアント側で証明書の検証が必要になります。
  • サーバー証明書の状態: 有効期限が切れていないか、信頼された証明機関(CA)から発行されているか。
  • TLSバージョンのサポート状況: SQL ServerがTLS 1.2以降をサポートしているか(SQL Server 2016以降は標準対応)。

管理者には、エラーのスクリーンショットと、Power Queryで使用している接続文字列を伝えるとスムーズです。また、SSMSで同サーバーに接続できるかどうかの結果も有用な情報になります。

5. 代替手段と接続文字列の調整

どうしても原因が特定できない、または管理者の対応を待てない場合、接続文字列を調整する回避策がいくつかあります。ただし、セキュリティを低下させる可能性があるため、本番環境では慎重に判断してください。

回避策 効果 リスク
TrustServerCertificate=True を追加 サーバー証明書の検証をスキップ 中間者攻撃のリスク増大
Encrypt=no を追加 暗号化を無効化(サーバーが許可している場合のみ) データが平文で送信される
古いODBCドライバ(ver.13など)を使う TLS 1.0/1.1での接続が可能 セキュリティ基準を満たさない可能性

これらの回避策は一時的な対処として位置づけ、最終的にはサーバー側の設定やドライバの更新で根本解決を目指してください。

6. よくある質問

Q1. Power Queryで「暗号化をサポートする」オプションがグレーアウトしている

接続文字列を直接編集するモードでないと変更できない場合があります。詳細設定で「接続文字列を設定する」にチェックを入れ、手動でTrustServerCertificateやEncryptを記述してください。

Q2. SSMSでは接続できるのにPower Queryだけエラーになる

SSMSは独自のTLS実装を持っているため、Power Queryと挙動が異なることがあります。Power QueryはWindowsのSCHANNELを使用するため、WindowsのTLS設定が影響します。また、使用するODBCドライバのバージョンも確認しましょう。

Q3. 会社のPCでODBCドライバを更新できない

管理者権限がない場合は、IT部門に連絡して業務ソフトウェアとして配布してもらってください。自己インストールはセキュリティポリシーに違反する可能性があります。

Q4. エラーメッセージに「SQL Server が存在しないかアクセスが拒否されました」と表示される

暗号化エラーと似ていますが、これはネットワークや認証の問題です。サーバー名やポート、ログイン資格情報を再確認してください。

7. まとめ

Power QueryでSQL Server接続時の暗号化エラーは、サーバー側のForce Encryptionとクライアント側のTLS/ドライバの組み合わせで発生します。最初にエラーメッセージのキーワードを確認し、SSMSとの比較で原因を切り分けることが重要です。クライアント側で調整できるのはPower Queryの接続設定とODBCドライバの更新程度であり、レジストリ変更は管理者の指示が必要です。本記事の手順を参考に、問題を着実に特定し、適切な対応を行ってください。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT