Symptomy
Jeśli program SQL Server korzysta z niebuforowanego zapytania Auto-sparametryzowanego, zapytanie może powodować naruszenie zasad dostępu w rzadkich warunkach. Naruszenie zasad dostępu jest rejestrowane w dzienniku błędów programu SQL Server wraz ze stosem wywołań zawierającym następujący przykładowy fragment:***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0010.txtSqlDumpExceptionHandler: Process #### generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.* ********************************************************************************* BEGIN STACK DUMP:* date time spid #*** Exception Address = 000007FA0B512E2F Module(sqllang+0000000000E72E2F)* Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION* Access Violation occurred reading address 0000000000000018** Input Buffer ### bytes -* select identifier, registration_date, model, digit, place, failure, address, * remote_control, phone_number, state, location, updated, mta, * home_id, vod_address, observations * from equipment with(nolock) * where branch_group = 1 and equipment_type = 2 * and series = 'SERIES_AAA'* * ******************************************************************************** -------------------------------------------------------------------------------* Short Stack Dump000007FA0B512E2F Module(sqllang+0000000000E72E2F)000007FA0B57D7D2 Module(sqllang+0000000000EDD7D2)000007FA0A74788B Module(sqllang+00000000000A788B)000007FA0A746B5C Module(sqllang+00000000000A6B5C)000007FA0A747034 Module(sqllang+00000000000A7034)000007FA0A746F8C Module(sqllang+00000000000A6F8C)000007FA0A6C9851 Module(sqllang+0000000000029851)000007FA0AB5CF5C Module(sqllang+00000000004BCF5C)000007FA0AB54397 Module(sqllang+00000000004B4397)000007FA09990430 Module(sqldk+0000000000010430)000007FA09990214 Module(sqldk+0000000000010214)000007FA0998FEF7 Module(sqldk+000000000000FEF7)000007FA099AF15F Module(sqldk+000000000002F15F)000007FA099AF1E0 Module(sqldk+000000000002F1E0)000007FA099AE70E Module(sqldk+000000000002E70E)000007FA099AEFB9 Module(sqldk+000000000002EFB9)000007FA17411832 Module(KERNEL32+0000000000001832)000007FA19B1D609 Module(ntdll+000000000005D609) W tym przykładzie objawy są następujące:
-
Proste zapytanie, które zawiera co najmniej jedno stałe w klauzuli WHERE. Program SQL Server może automatycznie parameterize te stałe.
-
Ciąg "naruszenie dostępu podczas czytania adresu 0000000000000018". (Ten ciąg kończy się na "18" w systemach 64-bitowych, "0C" w systemach 32-bitowych.)
-
Zawartość krótkiego zrzutu stosu ma taką samą lub podobną głębokość i względne położenie ramek stosu (niekoniecznie dokładny odpowiednik). Uwaga Ten przykład jest pobierany z 64-bitowego wystąpienia programu SQL Server. Będzie on inaczej, ale nadal rozpoznawalny w przykładach z wystąpienia 32-bitowego.
Informacje o aktualizacji zbiorczej
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Informacje
Informacje o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.