共用方式為


Management Studio 中的自訂報表

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例Azure Synapse AnalyticsAnalytics 平台系統 (PDW)

在 SQL Server Management Studio 中,許多物件總管節點會顯示一組由Microsoft建立的標準報表。 這些報告摘要說明通常要求的伺服器資訊。 從 SQL Server 2005 (9.x) Service Pack 2 開始,系統管理員可以從 Management Studio 執行 SQL Server Data Tools (SSDT) 中建立的自定義報告。

實現

自訂報表會儲存為報表定義 (.rdl) 檔案,並使用報表定義語言 (RDL) 建立。 RDL 包含 XML 格式報表的數據擷取和配置資訊。 RDL 是開放式架構。 開發人員可以使用其他屬性和元素擴充 RDL。 報表可以在報表內執行任何有效的 Transact-SQL 語句。

當 [物件總管] 已連接至伺服器,且報表參考該節點的報表參數時,自定義報表即可在目前 [物件總管] 的選取內容中執行。 這可讓報表使用目前的內容,例如目前的資料庫;或一致的內容,例如將指定的資料庫指定為包含在自定義報表中 Transact-SQL 語句的一部分。

執行自訂報表

您可以使用下列方式在 Management Studio 中執行自訂報表:

  • 以滑鼠右鍵按兩下 [物件總管] 中的節點,指向 [報表],然後按下滑鼠左鍵 [自定義報表]。 在 [開啟檔案] 對話框中,找出包含 .rdl 檔案的資料夾,然後開啟適當的報表檔案。

  • 以滑鼠右鍵按兩下 [物件總管] 中的節點,指向 [報表],指向 [自定義報表],然後從最近使用的檔案清單中選取自定義報表。

局限性

當您使用自訂報表時,請考慮下列限制:

  • 若要防止非預期的惡意代碼執行,即使文件系統設定為將 .rdl 檔案與 Management Studio 產生關聯,Management Studio 也無法設定為自動執行報告。 報表無法在 Management Studio 中以程式設計方式執行,而且無法透過 Management Studio 從命令行執行。

  • 您可以在不會產生預期值的內容中執行自訂報表。 例如,您可以在不進行複寫的資料庫中執行有關複寫的報表,或以沒有權限存取生成精確報表所需資訊的使用者身分執行報表。 自定義報表的建立者負責報表結構和其內容的有效性。

  • 您無法將自訂報表新增至標準報表清單。

  • 報表所處理的程式代碼可能會影響伺服器效能。

  • 自訂報表不支持子報表。

  • 報表內每個查詢的命令文字不得透過表達式定義。

  • 命令 (query) 中使用的任何查詢參數只能參考單一報表參數,而且不能使用任何表達式運算符。

  • 報表命令僅支援文字和預存程式命令類型(查詢)。

  • 報表架構不會為查詢提供任何參數轉義功能。 查詢作者必須確定其查詢不受 SQL 插入式攻擊。

管理自訂報表

建議有許多自定義報表的使用者使用具有適當NTFS檔系統許可權的檔案系統資料夾加以組織。

權限

使用目前使用者的許可權執行自訂報表。 若要防止惡意使用者變更報表所執行的查詢,應設定包含報表檔案的檔系統資料夾許可權來限制存取。

SQL Server 服務所使用的使用者和帳戶都需要對包含報表檔案的文件系統資料夾進行讀取存取。

任何有效的 .NET Framework 命令都可以內嵌在報表中,但不會執行命令。

謹慎

任何有效的 Transact-SQL 語句都可以內嵌並從報表執行。 在高許可權用戶帳戶下執行報告,任何內嵌指令都能夠執行,不會受到任何阻撓。

另請參閱

將自定義報表新增至Management Studio
取消隱藏執行自定義報告的警告
搭配物件總管節點屬性使用自定義報表