整合式安全性和更高的權限
在具有更高權限的帳戶下執行報表時,如果報表查詢包含惡意的 Transact-SQL 陳述式 (例如,建立未經授權登入、修改或刪除資料,或者導入錯誤資料的陳述式),您的 SQL Server 會暴露在安全性威脅之下,而報表會由在主控資料來源之伺服器上擁有更高權限的使用者執行。例如,如果攻擊者發行包含惡意查詢的報表,若具有以下任何一個情況時,查詢將會在管理員認證之下處理:
- 報表資料來源設定為使用整合式安全性,且執行報表的使用者以管理員身分登入。
- 報表資料來源設定為提示認證,且使用者鍵入他/她的管理員認證以執行報表。
減少權限提高攻擊的最佳作法
若要減少此威脅,請遵循下列一或多個建議的安全性作法:
- 使用最低權限帳戶來存取提供資料給報表的外部資料來源。您可以設定報表資料來源為一律使用最低權限帳戶的預存認證。
- 使用共用資料來源,以指定資料來源連接資訊。您可以使用共用資料來源上的角色指派來控制連接字串的存取,以及定義執行階段如何獲得認證之設定的存取。
- 使用角色指派和工作流程處理序,以確定只有可靠的報表會發行到報表伺服器。透過角色指派,您可以限制報表發行到特定的資料夾,然後要求管理員檢查這些新發行報表的 RDL 檔案 (和查詢) 之後,才將它移動到最終位置。請注意,Reporting Services 不會提供您為組織所定義之標準操作程序的強制執行方法。在發行之前,並無可強制執行需求檢查的方法。
- 在報表資料來源認證選項中停用整合式安全性。
使用整合式安全性存取外部資料來源,對於不知道其安全性 Token 已被傳遞至外部資料來源的使用者,會造成特殊的問題 (使用者在執行設定為使用整合式安全性的報表時,不會事先收到警告)。此外,如果使用者從未知來源開啟電子郵件附加檔案,可能不會有開啟報表時的相同問題。不過,在這兩個狀況中,安全性的風險是一樣的。就像惡意的指令碼透過超連結或隱藏在電子郵件附加檔案來傷害或危及工作站,而惡意的查詢也會以相同的方式傷害或危及伺服器。
請注意,如果停用整合式安全性,任何目前設定為使用整合式安全性 (或在停用功能之後設定為使用整合式安全性) 的報表資料來源,將無法再執行。您的報表伺服器上若是不支援整合式安全性,就會傳回下列錯誤:「此資料來源設定為使用 Windows 整合式安全性,但此伺服器已停用 Windows 整合式安全性」。
若要停用整合式安全性,請清除 SQL Server 介面區組態工具中的 [啟用報表資料來源的 Windows 整合式安全性] 選項。可以在 [功能的介面區組態] 對話方塊的 [Reporting Services] 區段中使用此選項。您也可以使用指令碼或程式碼,來修改 EnableIntegratedSecurity 系統屬性。如需詳細資訊,請參閱<SQL Server 組態管理員>和<Report Server System Properties>。