Authentication

如何讓 Kerberos 針對 Power BI 報表伺服器中的命名 SQL Server 實例工作?

  • December 28, 2018

我有一個 Power BI 報表伺服器,它可以完美地連接到僅使用預設實例的 SQL Server 電腦。我還可以SSAS使用正確的 SPN 並允許Kerberos constrained delegation從 Power BI 服務帳戶連接到命名實例MSOLAPSVC.3 service(SQL Server Browser)。我相信我已經正確設置了所有正確的 SPN,因為我可以執行連結伺服器並從任何東西中查詢任何東西。Kerberos 配置管理器為所有內容顯示綠色複選標記。

我唯一的問題是連接到 SQL Server 引擎(不是 SSAS)的命名實例。我收到以下錯誤,如果 SPN 未正確註冊,您通常會收到該錯誤。

描述:使用者“NT AUTHORITY\ANONYMOUS LOGON”登錄失敗。原因:找不到與提供的名稱匹配的登錄名。

$$ CLIENT: x.x.x.x $$

命名實例必須如何從 Power BI 連接(可能還有 SSRS)有區別嗎?我正在嘗試對我環境中的 .pbix 文件中的遠端 SQL Server 命名實例執行 DirectQuery。

經過數小時的故障排除後,我已經完成了這項工作。我必須允許 PBI 服務帳戶在 EXPLICIT 埠上將憑據傳遞給目標 SQL Server,即使連接到 1433 上的預設實例也是如此。如果有人有任何意見,請隨時發表評論,但這是有用的我:

  1. 打開 Active Directory 使用者和電腦
  2. 右鍵點擊執行 Power BI 報表服務的服務帳戶,然後點擊“屬性”
  3. 點擊“委派”選項卡,然後點擊“添加”,然後點擊“使用者或電腦”
  4. 輸入 DESTINATION SQL Server 實例的服務帳號,點擊“確定”
  5. 點擊顯示埠的 MSSQLSVC 服務,無論它是預設的 1433 還是其他埠。如果您有多個命名實例,請為每個埠號添加條目。
  6. 點擊確定,然後再次點擊確定。
  7. 重新啟動 Power BI 報表伺服器 MACHINE,而不僅僅是服務。
  8. 打開對不同 SQL Server 實例使用 DirectQuery 的 Power BI (.pbix) 文件。
  9. 憑據現在應該從您(客戶端)傳遞到 Power BI 報表伺服器,然後再傳遞到任何目標伺服器。

引用自:https://dba.stackexchange.com/questions/225820