<目次>
Power BI Desktopからデータソースへの接続で「The target principal name is incorrect. Cannot generate SSPI context.」が出た時の対処について
事象の概要
原因の考察
具体的な対策手順
補足:ファイアウォールエラーの対処
付録1:接続エラーのまとめ
付録2:特殊な接続エラー
Power BI Desktopからデータソースへの接続で「The target principal name is incorrect. Cannot generate SSPI context.」が出た時の対処について
事象の概要
Power BI Desktopからデータを取得する際に、下記のようなエラーが発生しました。
詳細 : "Microsoft SQL: The target principal name is incorrect. Cannot generate SSPI context."
(図111)接続

(図112)エラー

原因の考察
・SSPI(MicrosoftのセキュリティAPI)がKerberos認証(Azure ADの認証プロトコル)を試みたが、失敗したことが原因です。
・多くの場合、Service Principal Name(Kerberos認証の際に、クライアントがサーバ上のサービスを一意に識別するための登録名)の設定ミスが原因です。
⇒具体的には、「Azure AD認証をせずに接続しようとしている」ケースが多いと考えられます。
具体的な対策手順
Azure AD認証を設定することでエラーが解消する場合があります。以下がその手順です。
・①「ファイル」→「オプション設定」を押下
(図121①)

・②「データソース設定」を押下
(図121②)

・③「アクセス許可の編集」を押下
(図121③)

・④資格情報の「編集」を押下
(図121④)

・⑤「Microsoftアカウント」を選択して「サインイン」を押下し、サインイン
(図121⑤)

・⑥サインインが完了したら「保存」を押下
(図121⑥)

以上で設定完了です。ファイアウォール設定が済んでいれば、これで接続可能になるはずです。
補足:ファイアウォールエラーの対処
ファイアウォール設定が未設定の場合、以下のようなエラーが発生します。
詳細 : "Microsoft SQL: Cannot open server '[サーバ名]' requested by the login. Client with IP address 'xxx.xxx.xxx.xxx(グローバルIP)' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect."
●対処手順:
・① Azure上でSQL Serverの「サーバー ファイアウォール設定」を押下
(図122①)

・②「パブリックアクセス」→「パブリックネットワークアクセス」が「選択したネットワーク」になっていることを確認し、「ファイアウォール規則」へ進みます。
(図122②)

・③「ファイアウォール規則」にご自身のIPアドレスを追加します。
(図122③)

付録1:接続エラーのまとめ
| パブリックアクセス | AAD認証 | ファイアウォール設定 | 結果 | エラーMSG |
|---|---|---|---|---|
| 有効化 | なし | 未 | × | 詳細 : “Microsoft SQL: The target principal name is incorrect. Cannot generate SSPI context.” |
| 有効化 | あり | 未 | × | 詳細 : “Microsoft SQL: Cannot open server ‘[サーバ名]’ requested by the login. Client with IP address ‘xxx.xxx.xxx.xxx(グローバルIP)’ is not allowed to access the server.” |
| 有効化 | あり | 済み | ○ | 接続成功 |
| 無効化 | あり | - | × | 詳細 : “Microsoft SQL: Reason: An instance-specific error occurred… 公式ドキュメント“ |
付録2:特殊な接続エラー
以下のような、比較的珍しいエラーも確認されています(備忘録として記載)。
詳細 : "Microsoft SQL: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - そのようなホストは不明です。)"
●原因:
・接続元のネットワーク環境に起因するエラー。
・(例)VPNなどによるアウトバウンド通信遮断が原因で応答が返らないケース。