KB3136496 — POPRAWKA: Naruszenie zasad dostępu występuje, gdy zapytanie odwołuje się do funkcji SQLCLR za pośrednictwem synonimu w SQL Server 2014 i 2016

Dotyczy
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 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)

Objawy

Rozważmy następujący scenariusz:

  • Istnieje funkcja SQLCLR zadeklarowana jako "deterministyczna" i może być używana do optymalizacji "zamiany na stałą".
  • Istnieje synonim wskazujący na funkcję SQLCLR.
  • Funkcja zwracająca tabelę (TVF) odwołuje się do funkcji SQLCLR za pomocą synonimu.

W tym scenariuszu, gdy aplikacja wysyła zapytanie do tej usługi TVF, może wystąpić naruszenie zasad dostępu i może zostać wyświetlony komunikat o błędzie podobny do następującego:

Uwaga

  • Wiadomość 0, poziom 11, stan 0, wiersz 14
  • Wystąpił poważny błąd bieżącego polecenia. Ewentualne wyniki należy odrzucić.

Ponadto w dzienniku błędów programu SQL Server jest rejestrowany komunikat o błędzie.

Rozwiązanie

Informacje o dodatku Service Pack dla programu SQL Server

Ten problem został rozwiązany w następującym dodatku Service Pack dla programu SQL Server:

Service Pack 2 dla programu SQL Server 2016

Service Pack 3 dla programu SQL Server 2014

Informacje o dodatkach Service Pack dla programu SQL Server:

Dodatki Service Pack są kumulatywne. Każdy nowy dodatek Service Pack zawiera wszystkie poprawki zawarte w poprzednich dodatkach Service Pack oraz nowe poprawki. Zalecamy stosowanie najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej dla danego dodatku Service Pack. Instalowanie poprzedniego dodatku Service Pack przed zainstalowaniem najnowszego dodatku Service Pack nie jest konieczne. Więcej informacji na temat najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej znajdziesz w tabeli 1 w następującym artykule.

Jak określić wersję, wersję i poziom aktualizacji programu SQL Server i jego składnikó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.