KB4042232 — POPRAWKA: Naruszenie zasad dostępu podczas anulowania oczekującego zapytania, jeśli funkcja brakujących indeksów jest włączona w SQL Server

Dotyczy
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Service Pack 1 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 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Objawy

Rozważmy następujący scenariusz:

  • Masz procedurę składowaną, która tworzy tabelę tymczasową w usłudze Microsoft SQL Server.

  • Uruchamiane jest zapytanie wysyłane przez procedurę składowaną, które spełnia następujące warunki:

    • Zapytanie odwołuje się do tabeli tymczasowej, która jest tworzona przez procedurę składowaną.
    • Zapytanie zawiera klauzulę WHERE, która nie jest objęta żadnymi indeksami, i funkcja brakujących indeksów jest włączona.
  • Załóżmy, że procedura składowana jest wywoływana jednocześnie z wielu wystąpień. Następnie tabele tymczasowe są często tworzone i usuwane, co prowadzi do częstego tworzenia i usuwania odpowiednich rekordów dla brakujących indeksów.

  • W takiej sytuacji, jeśli oczekujące zapytanie procedury składowanej zostanie anulowane, może zostać wyświetlony błąd naruszenia praw dostępu.

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych programu SQL Server:

Aktualizacja zbiorcza 2 dla programu SQL Server 2017

Aktualizacja zbiorcza 9 dla programu SQL Server 2016 RTM

Aktualizacja zbiorcza 6 dla programu SQL Server 2016 z dodatkiem SP1

Aktualizacja zbiorcza 8 dla programu SQL Server 2014 z dodatkiem SP2

Informacje o aktualizacjach zbiorczych programu SQL Server:

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014

Obejście

Obejściem tego problemu jest włączenie flagi śledzenia (TF) 2392 , która pomija zbieranie brakujących indeksów.

Więcej informacji

Aby uzyskać więcej informacji na temat funkcji brakujących indeksów, skorzystaj z następującego linku:

Funkcja brakujących indeksów

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.