停用或暫停報表與訂閱處理

有好幾種方法,您可以用來停用或暫停 Reporting Services 報表和訂閱處理。 此文章中的方式包括停用訂閱以中斷資料來源連線。 並非所有的方法都可以使用這兩種 Reporting Services 伺服器模式。 下表摘要說明這些方法和支援的 Reporting Services 伺服器模式:

本文內容

方法 支援的伺服器模式
啟用和停用訂閱 原生模式
暫停共用排程 原生和 SharePoint 模式
停用共用資料來源 原生和 SharePoint 模式
修改角色指派來禁止存取報表 (原生模式) 原生模式
移除角色的管理訂閱權限 (原生模式) 原生模式
停用傳遞延伸模組 原生和 SharePoint 模式

啟用和停用訂閱

提示

SQL 2016 Reporting Services 的新功能,啟用和停用訂閱。 新的使用者介面選項可讓您快速啟用及停用訂閱。 停用的訂閱會維持其中的其他組態屬性,例如排程,並且可以輕鬆重新啟用。 您也能以程式設計方式啟用及停用訂閱或稽核哪些訂閱已停用。

Screenshot of the Enable and Disable buttons of the Subscriptions page.

在 Web 入口網站中,從我的訂閱頁面或個別訂閱的訂閱頁面瀏覽至訂閱。 選取一或多個訂閱,然後選擇功能區上的停用按鈕或啟用按鈕。 狀態直欄會分別變更為「已停用」或「已啟用」。

Reporting Services 會在訂閱啟用或停用時,在 Reporting Services 記錄檔中寫入橫列。 例如,在報表伺服器記錄檔中:

 C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles\RSPortal_2019_06_20_00_49_22.log

您會看到類似下列範例的橫列:

 RSPortal!subscription!RSPortal.exe!93!06/20/2019-01:16:47:: i INFO: Subscription 2b409d66-d4ea-408a-918c-0f9e41ce49ca disabled at 06/20/2019 01:16:47
RSPortal!subscription!RSPortal.exe!93!06/20/2019-01:16:51:: i INFO: Subscription 2b409d66-d4ea-408a-918c-0f9e41ce49ca enabled at 06/20/2019 01:16:51

使用 Windows PowerShell 停用單一訂閱:使用下列 PowerShell 指令碼停用特定的訂閱。 更新指令碼中的伺服器名稱和訂閱 ID。

#disable specific subscription  
$rs2010 = New-WebServiceProxy -Uri "https://SERVERNAME/ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;  
$subscriptionID = "subscription guid";  
$rs2010.DisableSubscription($subscriptionID);  
  

您可以使用下列指令碼列出所有訂閱與其識別碼。 更新伺服器名稱。

#list all subscriptions  
$rs2010 = New-WebServiceProxy -Uri "https://SERVERNAME /ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;  
$subscriptions = $rs2010.ListSubscriptions("/");  
$subscriptions | select subscriptionid, report, status, path  
  

使用 Windows PowerShell 列出所有已停用的訂閱:使用下列 PowerShell 指令碼來列出目前的原生模式報表伺服器上所有已停用的訂閱。 更新伺服器名稱。

#list all disabled subscriptions  
$rs2010 = New-WebServiceProxy -Uri "https://uetestb03/ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;  
$subscriptions = $rs2010.ListSubscriptions("/");  
Write-Host "--- Disabled Subscriptions ---";  
Write-Host "----------------------------------- ";  
$subscriptions | Where-Object {$_.Active.DisabledByUserSpecified -and $_.Active.DisabledByUser } | select subscriptionid, report, status, lastexecuted,path | format-table -auto  

使用 Windows PowerShell 啟用所有已停用的訂閱:使用下列 PowerShell 指令碼來啟用目前所有已停用的訂閱。 更新伺服器名稱。

#enable all subscriptions  
$rs2010 = New-WebServiceProxy -Uri "https://SERVERNAME/ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;  
$subscriptions = $rs2010.ListSubscriptions("/") | Where-Object {$_.status -eq "disabled" } ;  
ForEach ($subscription in $subscriptions)  
{  
    $rs2010.EnableSubscription($subscription.SubscriptionID);  
    $subscription | select subscriptionid, report, path  
}  
  

使用 Windows PowerShell 停用所有訂閱:使用下列 PowerShell 指令碼列出停用所有訂閱。

#DISABLE all subscriptions  
$rs2010 = New-WebServiceProxy -Uri "https://SERVERNAME/ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;  
$subscriptions = $rs2010.ListSubscriptions("/") ;  
ForEach ($subscription in $subscriptions)  
{  
    $rs2010.DisableSubscription($subscription.SubscriptionID);  
    $subscription | select subscriptionid, report, path  
}  

暫停共用排程

如果報表或訂閱從共用排程執行,您可以暫停排程來禁止處理。 由排程驅動的所有報表與訂閱處理,會被延遲至排程繼續為止。

  • SharePoint 模式: 在 [網站設定] 中,選取 [管理共用排程]。 選擇排程,然後選取暫停所選排程

  • 原生模式:在 Web 入口網站中,從 Web 入口網站畫面頂端的選單列選取設定按鈕,然後從功能表選擇網站設定。 選取 [排程] 索引標籤,以顯示 [排程] 頁面。 選取您想要啟用或停用的排程旁核取方塊,然後分別選擇啟用停用按鈕來執行所需的動作。 狀態直欄會據以更新為「已停用」或「已啟用」。

停用共用資料來源

當您使用共用資料來源時,您可以停用它,禁止執行報表或資料驅動訂閱。 停用共用資料來源會中斷報表與其外部來源的連接。 停用時,資料來源無法供所有使用它的報表與訂閱使用。

請注意,即使資料來源無法使用,報表仍然會載入。 報表不包含資料,但具備適當權限的使用者可以存取與報表相關聯的屬性頁面、安全性設定、報表記錄,以及訂閱資訊。

  • SharePoint 模式: 若要停用 SharePoint 模式報表伺服器中的共用資料來源,請瀏覽至包含資料來源的文件庫。 選取資料來源,然後清除啟用此資料來源核取方塊。

  • 原生模式: 若要停用原生模式報表伺服器上的共用資料來源,請在 Web 入口網站中開啟資料來源,並清除啟用此資料來源核取方塊。

修改角色指派來禁止存取報表 (原生模式)

讓報表無法使用的一個方法,是暫時移除可以提供存取報表的角色指派。 無論建立資料來源連接的方式為何,此方法可以用於所有報表。 此方法僅會以報表為目標,不會影響其他報表或項目的作業。

若要移除角色指派,請在入口網站中,開啟報表的 [安全性] 頁面。 如果報表從父系繼承安全性,您可以選擇自訂安全性並選取項目安全性對話框中的確認來建立嚴格的安全性原則,省略提供普遍存取權的角色指派 (例如,您可以移除提供 Everyone 存取權的角色指派,保留提供一小組使用者存取權的角色指派,例如系統管理員)。

移除角色的管理訂閱權限 (原生模式)

若要讓使用者無法建立訂閱,請從角色中清除「管理個別訂閱」 工作。 當您移除這個工作後,「訂閱」頁面就無法使用。 在 Web 入口網站中,即使「我的訂閱」頁面原先含有訂閱,此時也會顯示空白 (無法刪除這個頁面)。 移除訂閱相關的工作會讓使用者無法建立與修改訂閱,但是不會刪除現有的訂閱。 現有的訂閱會繼續執行,直到刪除為止。 若要移除權限:

  1. 開啟 SQL Server Management Studio。

  2. 連線到 Reporting Services 報表伺服器。

  3. 展開 [安全性] 節點。

  4. 展開 [角色] 節點,然後選取所需的角色。

  5. 以滑鼠右鍵按一下此角色,然後選取 [屬性] 。

  6. 清除管理個別訂閱管理所有訂閱工作。

  7. 選取 [確定] 以套用變更。

停用傳遞延伸模組

在報表伺服器上安裝的所有傳遞延伸模組都會提供給有權建立給定報表之訂閱的任何使用者。 系統會自動提供和設定下列傳遞延伸模組:

  • Windows 檔案共用

  • SharePoint 文件庫 (只能從與 SharePoint 整合模式報表伺服器整合的 SharePoint 網站使用)

您必須先設定電子郵件傳遞,然後才能使用它。 如果您未設定,便無法使用。 如需詳細資訊,請參閱電子郵件設定 - Reporting Services 原生模式 (組態管理員)

如果您想要關閉特定延伸模組,可以在 RSReportServer.config 檔中移除延伸模組項目。 如需詳細資訊,請參閱 Reporting Services 組態檔電子郵件設定 - Reporting Services 原生模式 (組態管理員)

在您移除傳遞延伸模組之後,就無法再於 Web 入口網站或 SharePoint 網站中使用它。 移除傳遞延伸模組可能會產生非使用中訂閱。 移除延伸模組之前,請務必刪除訂閱,或將它們設定為使用不同的傳遞延伸模組。

訂閱與傳遞 (Reporting Services)
Reporting Services 組態檔
設定入口網站
Reporting Services 報表伺服器 (原生模式)
報表伺服器的 Web 入口網站 (SSRS 原生模式)
安全性實體項目