Share via


設定已發行報表的參數屬性

參數化報表是在報表處理中可接受輸入值的報表。參數是建立報表時在報表設計師中定義的。如需有關定義參數的詳細資訊,請參閱<將參數加入至您的報表>。

發行報表之後,您可以使用報表管理員來修改參數屬性,以便進行下列作業:

  • 使用預先設定 (使用者未介入) 的參數值執行報表。

  • 使用預設參數值或使用者選取的有效值來執行報表。

  • 執行報表,不指定參數值。可以指定 Null 值以傳回未篩選的結果集。

  • 執行個人化報表,根據使用者提供的值來取得使用者特定資訊 (例如,根據個人識別碼來取得帳戶或薪資存根的餘額)。

如果從報表設計師重新發行報表定義,則您在報表管理員中針對已發行報表所設定的參數屬性通常會保留下來。如果報表定義和報表同樣重新發行,且參數名稱和資料類型保持相同,則會保留屬性設定。如果您加入或刪除報表定義中的參數,或變更現有參數的資料類型或名稱,您就可能需要變更已發行報表的參數屬性。

並非所有的參數都可以在任何情況下修改。如果報表參數從查詢取得預設值,該值就無法在報表管理員中修改。指定為「以查詢為基礎的」預設參數值是在報表定義中定義,且無法在報表管理員中修改。以查詢為基礎的參數值並不是常數值。執行階段使用的值會在查詢執行時決定,如果是以運算式為基礎的參數,則會在評估運算式時決定。

報表執行選項會影響處理參數的方式。以快照集執行的報表無法使用從查詢所衍生的參數,除非查詢包括參數的預設值。如需有關查詢參數的詳細資訊,請參閱<如何:將查詢參數與報表參數產生關聯>。

參數化報表的安全性考量

散發包含機密或敏感資訊的參數化報表時,請特別小心。使用者可以輕鬆地以其他值取代報表參數,造成您不希望發生的資訊洩露。

使用員工或個人資料之參數的一個安全替代方式,就是根據包含 Users 集合之 UserID 欄位的運算式來選取資料。Users 集合提供一種方法,來取得執行報表之使用者的識別,並使用該識別來擷取使用者特定資料。如需詳細資訊,請參閱<使用運算式中的內建集合 (Reporting Services)>。

安全性注意事項安全性注意事項

在任何含有 String 類型之參數的報表中,請務必使用可用的值清單 (也稱為有效值清單),並確認執行報表的任何使用者只具有檢視報表資料所需的權限。當您將參數定義為 String 類型時,使用者會看到一個可接受任何值的文字方塊。可用的值清單會限制可輸入的值。如果報表參數繫結至查詢參數,而且您不要使用可用的值清單,則報表使用者可以在文字方塊中輸入 SQL 語法,如此可能會使您的報表及伺服器暴露在 SQL 資料隱碼攻擊的危險之下。如果使用者的權限足以執行新的 SQL 陳述式,伺服器可能會出現不良的結果。

如果報表參數未繫結至查詢參數且參數值未包含在報表中,報表使用者就可以輸入運算式語法、指令碼或 URL 到參數值中,將報表轉譯為 Excel 或 HTML。如果另一個使用者接著檢視報表並按一下轉譯的參數內容,該使用者可能會不小心執行惡意指令碼或連結。

若要減輕不小心執行惡意指令碼的風險,請只從信任的來源開啟轉譯的報表。如需有關保護報表安全的詳細資訊,請參閱<保護報表和資源的安全>。

設定參數屬性

您可以在已發行之報表上修改的參數屬性,是由原始報表定義中指定的參數所決定。您可以隨時變更顯示文字及 Hide 屬性,此屬性會決定使用者是否可以看見該參數。然而,如果值是從查詢衍生而來,則您不一定能夠變更預設值。在此情況下,參數旁邊會出現「QueryBased」文字字串。

若要修改參數屬性,請開啟報表的 [參數屬性] 頁面。您可以修改下列屬性:

  • 有預設值屬性會決定若無使用者的輸入,是否可以處理報表。如果參數尚未指定預設值,則使用者必須先提供值,才能處理報表。

  • 預設值屬性可以是常數或 Null (如果參數接受 Null 值)。它不能設定為運算式。

  • 隱藏屬性會決定使用者是否看得到顯示和輸入欄位。選取此核取方塊可隱藏參數。

  • 提示使用者屬性,會決定使用者是否能夠為參數輸入或選取其他的有效值。停用隱藏時,會啟用此屬性。

  • 顯示文字屬性會指定在參數旁出現的文字。此文字可以是提供使用指示的標籤或較長的文字字串。您選取 [提示使用者] 時,會啟用此屬性。

您無法刪除、重新命名、重新排列或變更已發行之報表中參數的資料類型。此外,您也不能變更參數名稱。若要變更上述任一個屬性,就必須修改報表定義。

隱藏參數

您可以隱藏搭配報表使用的參數欄位和標籤。當所有參數都隱藏時,也會隱藏視需要報表的參數區域。如果您隱藏參數,就必須在報表定義或 [參數屬性] 頁面中提供預設值。如果允許 Null,您可以指定 Null 值,這會視報表而定。

隱藏參數並不會在所有情況下都看不見參數。您在報表工具列上隱藏的參數,還是可以在訂閱和透過 URL 設定。若要在報表定義以外的所有地方隱藏參數,請從 [報表參數] 對話方塊中選取 [內部]

若要隱藏參數:

  1. 選取 [有預設值]

  2. 指定 [預設值]

  3. 選取 [隱藏]

驗證參數值

若要確認所指定的值是否有效,請執行報表。與參數處理相關的錯誤,會出現在 [報表管理員錯誤] 頁面中。若要進一步調查問題,您可以檢視記錄檔。如需詳細資訊,請參閱<Reporting Services 記錄檔>。

設定訂閱中的參數

除了使用 [參數屬性] 頁面之外,在建立訂閱時也可以設定參數值。每一個訂閱報表的使用者都可以指定訂閱所儲存及使用的參數值。如需詳細資訊,請參閱<設定訂閱中的參數>。