Microsoft izplata Microsoft SQL Server 2012 labojumus vienā lejupielādējamā failā. Tā kā labojumi ir kumulatīvi, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības atjauninājumi, kas iekļauti ar iepriekšējo SQL Server 2012 atjaunināšanas laidienu.
Simptomi
Pieņemiet, ka daudzās xp_cmdshell saglabātās procedūras vienlaikus veicat vairākās sesijās programmā Microsoft SQL Server 2012. Šajā situācijā xp_cmdshell saglabātās procedūras pirmo izpildi nevar pabeigt, kamēr nav pabeigta pēdējā izpilde.
Cēlonis
Šī problēma rodas tāpēc, ka tiek pārmantoti procesi, kas tiek atvērti, palaižot xp_cmdshell saglabātās procedūras. CreateProcess API nepieciešams rīkoties ar pārmantošanu, lai novirzītu standarta produkciju un kļūdas ziņojumu. Ja xp_cmdshell saglabātas procedūras vairāku darbību veikšana vienlaikus, jaunizveidotie procesi var pārmantot esošos procesus. Taču xp_cmdshell saglabāto procedūru gaida, kamēr turi aizver visi atvērtie procesi. Tāpēc, ja ar turi pārmanto vairākus procesus, visiem xp_cmdshell izpildi ir jāgaida, līdz turis tiek aizvērts ar visilgāk veicamo procesu.
Risinājums
Lai atrisinātu šo problēmu, lietojiet šo kumulatīvo atjauninājumu. Šajā atjauninājumā tiek pievienotas CreateProcess API STARTUPINFOEX opcijas, kas neļauj veikt pārmantošanu, lai veiktu krusta procesu.
Kumulatīvās atjaunināšanas informācija
Kumulatīvās atjaunināšanas pakotne 1 SQL Server 2012 1. servisa pakotnei
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjauninājumā 1. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2012 1. servisa pakotnei, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2765331 Kumulatīvās atjaunināšanas pakotne 1 SQL Server 2012 1. servisa pakotneiPiezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2012 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2772858 SQL Server 2012 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2012 1. servisa pakotne
SQL Server 2012
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjaunināšanā 4. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2012, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2758687 Kumulatīvās atjaunināšanas pakotne 4 SQL Server 2012Piezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2012 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2692828 SQL Server 2012 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2012
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Atsauces
Lai iegūtu papildinformāciju par funkciju CreateProcess, dodieties uz šādu MSDN tīmekļa vietni:
Vispārīga informācija par funkciju CreateProcessLai iegūtu papildinformāciju par xp_cmdshell saglabāto procedūru, dodieties uz šādu MSDN tīmekļa vietni:
Vispārēja informācija par xp_cmdshell saglabāto procedūru Lai iegūtu papildinformāciju par līdzīgu problēmu, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
315939 PRB: bērnobjekts pārmanto neparedzētus turus CreateProcess zvanā