Applies To
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows

徵狀

假設您執行具有匯總和聯集的查詢 (例如:COUNT WITH GROUP BY) 在 SQL Server 中已篩選索引的資料表上,該資料表是做為遠端伺服器,且使用者沒有 VIEW DEFINITION 許可權。 在此情境中,連結伺服器會將篩選的索引視為完整的唯一索引,而查詢會返回不正確的結果。 

其他相關資訊

當您執行遠端查詢時,連結的伺服器程式會使用索引中繼資料來優化查詢。 當您沒有查詢之資料庫的 VIEW DEFINITION 許可權時,中繼資料不會指出索引是篩選的索引,而查詢最佳化工具會認為索引是完整的唯一索引。 當您沒有 VIEW DEFINITION 許可權供查詢最佳化工具考慮時,此修正程式會修正篩選索引的索引中繼資料。

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

解決方案

此問題在 SQL Server 的下列累積更新中已經修正:

注意:此修正程式應適用于遠端連結伺服器。

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix,以及上一個累積更新中包含的所有安全性修正。 查看 SQL Server 的最新累積更新:

因應措施

若要解決此問題,請嘗試下列其中一種方法:

  • 移除篩選的索引。

  • 將視圖定義授予使用者。 例如:將 VIEW 定義授予test_user;

參考

了解 Microsoft 用來說明軟體更新的術語

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。