您目前已離線,請等候您的網際網路重新連線

您如果在變更用以執行「報表伺服器」服務的使用者帳戶之後重新啟動「報表伺服器」,會在 Reporting Services 追蹤記錄中收到錯誤訊息

徵狀
您如果在執行 Microsoft SQL Server 2000 Reporting Services 的電腦上變更用以執行「報表伺服器」服務的使用者帳戶之後重新啟動「報表伺服器」服務,將會出現類似下列的行為:
  • 如果您變更用以執行「報表伺服器」Windows 服務的使用者帳戶,會在 Reporting Services 追蹤記錄中收到類似下列的錯誤訊息:
    ReportingServicesService!crypto!d00!5/18/2004-13:10:54:: i INFO: Initializing  crypto as user: (以下列使用者身分初始化加密:)DomainName\UserNameReportingServicesService!crypto!d00!5/18/2004-13:10:54:: i INFO: Exporting  public keyReportingServicesService!crypto!d00!5/18/2004-13:10:55:: i INFO: Performing  sku validationReportingServicesService!crypto!d00!5/18/2004-13:10:55:: i INFO: Importing  existing encryption keyReportingServicesService!library!d00!5/18/2004-13:10:55:: e ERROR: Throwing  Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerDisabledException:  The report server cannot decrypt the symmetric key used to access sensitive or  encrypted data in a report server database. You must either restore a backup key  or delete all encrypted content and then restart the service. Check the  documentation for more information., ; Info: Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerDisabledException:  The report server cannot decrypt the symmetric key used to access sensitive or  encrypted data in a report server database. You must either restore a backup  key or delete all encrypted content and then restart the service. Check the  documentation for more information. ---> System.Runtime.InteropServices.COMException (0x80090005): Bad Data. at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode,   IntPtr errorInfo) at RSManagedCrypto.RSCrypto.ImportSymmetricKey(Byte[] pSymKeyBlob) at Microsoft.ReportingServices.Library.ConnectionManager.GetEncryptionKey() --- End of inner exception stack trace ---ReportingServicesService!library!d00!5/18/2004-13:10:55:: Exception caught  while starting service. Error:  Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerDisabledException:  The report server cannot decrypt the symmetric key used to access sensitive or  encrypted data in a report server database. You must either restore a backup   key or delete all encrypted content and then restart the service. Check the  documentation for more information. ---> System.Runtime.InteropServices.COMException (0x80090005): Bad Data. at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode,   IntPtr errorInfo) at RSManagedCrypto.RSCrypto.ImportSymmetricKey(Byte[] pSymKeyBlob) at Microsoft.ReportingServices.Library.ConnectionManager.GetEncryptionKey() --- End of inner exception stack trace --- at Microsoft.ReportingServices.Library.ConnectionManager.GetEncryptionKey() at Microsoft.ReportingServices.Library.ConnectionManager.ConnectStorage() at Microsoft.ReportingServices.Library.ConnectionManager.VerifyConnection() at Microsoft.ReportingServices.Library.ServiceController.ServiceStartThread()ReportingServicesService!library!d00!5/18/2004-13:10:55:: Attempting to start service again...
    注意 「報表伺服器」Windows 服務追蹤記錄預設會記錄在 InstallationDrive:\Program Files\Microsoft SQL Server\InstanceOfSQLServer\Reporting Services\LogFiles\ReportServerService_TimeStamp.log 檔案中。
  • 如果您變更用以執行「報表伺服器」Web 服務的使用者帳戶,會在 Reporting Services 追蹤記錄中收到類似下列的錯誤訊息:
    aspnet_wp!crypto!c84!5/21/2004-05:26:15:: i INFO: Initializing crypto as  user: UserNameaspnet_wp!crypto!c84!5/21/2004-05:26:15:: i INFO: Exporting public keyaspnet_wp!crypto!c84!5/21/2004-05:26:15:: i INFO: Performing sku validationaspnet_wp!crypto!c84!5/21/2004-05:26:15:: i INFO: Importing existing encryption  keyaspnet_wp!library!c84!5/21/2004-05:26:15:: e ERROR:  Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerDisabledException:  The report server cannot decrypt the symmetric key used to access sensitive  or encrypted data in a report server database. You must either restore a  backup key or delete all encrypted content and then restart the service.  Check the documentation for more information., ;Info: Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerDisabledException:  The report server cannot decrypt the symmetric key used to access sensitive or  encrypted data in a report server database. You must either restore a backup  key or delete all encrypted content and then restart the service. Check the  documentation for more information. --->  System.Runtime.InteropServices.COMException (0x80090005): Bad Data.at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode,  IntPtr errorInfo)at RSManagedCrypto.RSCrypto.ImportSymmetricKey(Byte[] pSymKeyBlob)at Microsoft.ReportingServices.Library.ConnectionManager.GetEncryptionKey()   --- End of inner exception stack trace ---aspnet_wp!webserver!72c!5/21/2004-05:26:25:: i INFO: Reporting Web Server  stopped
    注意 「報表伺服器」Web 服務追蹤記錄預設會記錄在 InstallationDrive:\Program Files\Microsoft SQL Server\InstanceOfSQLServer\Reporting Services\LogFiles\ReportServer_TimeStamp.log 檔案中。

    此外還會在您啟動「報表管理員」時,收到類似下列的錯誤訊息:

    報表伺服器無法解密用來存取報表伺服器資料庫中機密或已加密資料的 Symmetric 金鑰。您必須還原備份金鑰或刪除所有加密內容,然後重新啟動服務。如需詳細資訊,請查看文件。(rsReportServerDisabled) Get Online Help (取得線上說明)
    Bad Data. (不正確的資料。)
發生的原因
「報表伺服器」服務會使用對稱式金鑰存取報表伺服器資料庫中的加密資料。此對稱式金鑰是以對應至用以執行「報表伺服器」服務的電腦與使用者帳戶的非對稱式公開金鑰進行加密。當您變更用以執行「報表伺服器」服務的使用者帳戶時,該報表伺服器即無法使用非對稱式公開金鑰解密對稱式金鑰。而「報表伺服器」服務也將因此無法使用對稱式金鑰從報表伺服器資料庫存取資料。
解決方案
如果要解決這個問題,必須在變更用以執行「報表伺服器」Windows 服務或「報表伺服器」Web 服務的使用者帳戶之前,先備份這些加密金鑰,然後再套用所備份的金鑰。如果要執行這項操作,請在執行 Reporting Services 的電腦上依照下列步驟執行:
  1. 使用可以成功執行「報表伺服器」Windows 服務及「報表伺服器」Web 服務的使用者帳戶,啟動這兩項服務。
  2. 使用 rskeymgmt 命令列公用程式備份加密金鑰。如果要執行這項操作,請在命令提示字元執行下列命令:
    RSKeyMgmt -e -f FileName -p StrongPassword
    注意:以適當的檔名及密碼取代 FileNameStrongPassword。rskeymgmt 命令列公用程式的預設位置是 InstallationDrive:\Program Files\Microsoft SQL Server\80\Tools\Binn 資料夾。

    如需有關 rskeymgmt 命令列公用程式的詳細資訊,請在命令提示字元執行下列命令:
    RSKeyMgmt /?
  3. 使用 rskeymgmt 命令列公用程式移除對現有金鑰的參照。如果要執行這項操作,請在命令提示字元執行下列命令:
    RSKeyMgmt -r InstallationID
    注意 請以 RSReportServer.config 檔案之 InstallationID 設定中的安裝 ID 取代 InstallationID。RSReportServer.config 檔案的預設位置是 InstallationDrive:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer 資料夾。
  4. 停止 Microsoft Internet Information Services (IIS)。
  5. 停止「報表伺服器」Windows 服務。
  6. 將用以執行「報表伺服器」Windows 服務或「報表伺服器」Web 服務的使用者帳戶,變更為您所需要的使用者帳戶。
  7. 啟動 IIS。
  8. 啟動「報表伺服器」Windows 服務。
  9. 使用 rskeymgmt 命令列公用程式,套用您在步驟 2 中備份的加密金鑰。如果要執行這項操作,請在命令提示字元執行下列命令:
    RSKeyMgmt -a -f FileName -p StrongPassword
    注意 請以您在步驟 1 中備份對稱式加密金鑰時所使用的檔名及密碼取代 FileNameStrongPassword
狀況說明
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
security context under
参考
如需有關 Reporting Services 追蹤記錄的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:如需有關 RSReportServer.config 組態檔的詳細資訊,請造訪下列 Microsoft 網站:
內容

文章識別碼:842421 - 最後檢閱時間:05/15/2011 16:25:00 - 修訂: 2.0

  • Microsoft SQL Server 2000 Reporting Services
  • kbsqldeveloper kbtshoot kbconfig kbservice kbreport kbmsg kbuser kbsettings kblogin kberrmsg kbprb KB842421
意見反應