Sql-Server

為什麼我的 Microsoft SQL Server Reporting Services 2005 報表伺服器的報表管理器在 Windows 更新到 SP2 後告訴我“使用者登錄失敗”(rsRPCError)?

  • December 28, 2009

我通過 Windows Update 將現有的 SQL Server 2005 Reporting Services 實例更新為 SP2。現在,當我點擊我的報告管理器時,我收到消息“使用者’報告伺服器(沙盒)登錄失敗’。(rsRPCError)”。

“Report Server (Sandbox)”是我的 Report Server 用來連接到其管理數據庫(也稱為“Report Server (Sandbox)”)的 SQL Server 登錄名。Reporting Services 之前可以成功連接。該帳戶的密碼未更改;我可以通過例如 sqlcmd 使用其名稱和密碼成功連接。

當我執行 Reporting Services 配置管理器並檢查數據庫連接頁面(在數據庫設置上)時,一切正常。報告的數據庫版本是 C.0.8.40。我曾嘗試擺弄憑據以鼓勵他們以某種方式“重置”。這似乎沒有幫助,但該工具不斷提示我升級我的數據庫。(我一直告訴它繼續。)

是什麼賦予了?我是否需要完全擦除並重新安裝此報表伺服器(或至少其數據庫)?我想這不會是一件可怕的事情——反正它現在已經壞了,自然我們所有的報告定義都是有組織的和原始碼控制的,以便於重建/重新部署。儘管如此,我還是害怕再次與所有這些東西發生爭執。

最終,這被證明是數據庫版本不匹配,而不是“登錄失敗”消息所表明的身份驗證/授權問題。

我發現數據庫版本升級程序中有一個錯誤:它發出的腳本不能正確引用數據庫名稱,因此對於像我這樣的數據庫名稱往往有很多空格等。它發出類似USE Report Server (Sandbox)TempDB(而不是USE [Report Server (Sandbox)TempDB]) 的語句,並且升級失敗。解決方案是讓該工具發出升級腳本,手動修復它,然後自己應用它。看http://www.eggheadcafe.com/software/aspnet/30860451/database-problem.aspx

這裡還有一些提示:

  • 當配置管理器在頁面底部為您提供“消息”時,您可以點擊消息以查看更多詳細資訊。(沒有什麼可以讓你知道這個事實;我花了很長時間才意識到該工具願意向我解釋數據庫已過時,只要我神奇地點擊了不會邀請點擊的東西.)
  • 當您要求它為您生成升級腳本時(點擊腳本…按鈕,然後點擊左側的“升級數據庫腳本”),它會提示您輸入“伺服器版本”。這實際上是要求與您嘗試升級的數據庫版本相對應的 SQL Server Reporting Services 版本,這是一件很尷尬的事情。似乎數據庫版本 C.0.8.40 對應於 Reporting Services 2005,而數據庫版本 C.0.8.43 對應於 Reporting Services 2005 SP1。(C.0.8.54 對應於 Reporting Services 2005 SP2。)
  • 生成的腳本似乎對部分應用的更新相當健壯,但另一方面,它會很高興地部分更新您的數據庫版本。因此,您最好採取預防措施,例如在執行更新腳本之前在管家數據庫中開始和送出瑣碎的標記(命名)事務(以便在出現梨形時更容易進行時間點恢復),將整個腳本包裝在a BEGIN TRAN/並使用等COMMIT TRAN執行它。sqlcmd -b

引用自:https://serverfault.com/questions/86703