症狀
假設你執行一個包含聚合和加入 (的查詢,例如:在一個有篩選索引的表格上執行) 計數,該資料表SQL Server作為遠端伺服器,且使用者沒有 VIEW DEFINITION 權限。 在這種情況下,連結的伺服器會將篩選過的索引視為完整唯一索引,查詢結果則是錯誤的。
其他資訊
當你執行遠端查詢時,連結伺服器程序會使用索引元資料來優化查詢。 當你沒有查詢資料庫的 VIEW DEFINITION 權限時,元資料不會顯示該索引是過濾索引,查詢優化器會將該索引視為完整唯一索引。 此修正會在查詢優化器尚未取得 VIEW DEFINITION 權限時,修正已篩選索引的索引元資料。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
解決方式
此問題已在以下 SQL Server 的累積更新中得到修正:
註: 這個修正應該套用在遠端連結伺服器上。
關於 SQL Server 的累積更新:
每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:
因應措施
為了解決這個問題,請嘗試以下任一種方法:
- 移除篩選過的索引。
- 授權使用者存取權限。 例如:GRANT VIEW 定義至 test_user;
參考資料
了解 Microsoft 用來說明軟體更新的術語。