Tính năng s? d?ng detours ho?c tương t? như k? thu?t đ? thay đ?i hành vi c?a Microsoft SQL Server có th? gây ra các v?n đ? sau:
- V?n đ? hi?u su?t
- K?t qu? không chính xác
- Đ?a và b? nh? tham nh?ng
- M?t ph?n ?ng máy ch? SQL
- Ch?m d?t quá tr?nh b?t ng?
- Không có kh? năng s? d?ng tiêu chu?n ch?n đoán, ch?ng h?n như các ch?c năng fn_get_sql và l?nh DBCC INPUTBUFFER
- Các cơ h?i tăng c?a v?n đ? an ninh
Lưu ? Microsoft không cung c?p các b?n ghi d?ch v? h? tr? cho các tính năng c?a bên th? ba s? d?ng detours ho?c tương t? như k? thu?t đ? thay đ?i hành vi c?a SQL Server. N?u b?n đang làm vi?c v?i b?n ghi d?ch v? h? tr? SQL Server trên m?t v?n đ? c?a SQL Server, và nó đư?c xác đ?nh r?ng detours ho?c tương t? như các k? thu?t mà thay đ?i hành vi c?a SQL Server có th? đư?c tham gia, h? tr? chuyên nghi?p s? yêu c?u b?n đ? vô hi?u hoá ho?c đ? lo?i b? nh?ng detours ho?c các tính năng tương t? như là m?t bư?c x? l? s? c?. Trư?c khi thêm x? l? s? c? có th? x?y ra, v?n đ? báo cáo ph?i đư?c sao chép mà không có b?t k? ch?c năng đư?ng v?ng hi?n nay. Nên v?n đ? no c?n x?y ra, Microsoft có th? đ? ngh? b?n liên h? v?i nhà cung c?p cho các tính năng c?a bên th? ba và ti?p t?c kh?c ph?c s? c? v?i hư?ng t? nhà cung c?p đó.
Detours là m?nh m?. Detours cung c?p kh? năng nâng cao và m?t s? cân b?ng r?i ro/thư?ng. Thông thư?ng, khi m?t đư?ng v?ng đư?c th?c hi?n trong SQL Server, áp d?ng m? đư?c tiêm vào trong không gian quá tr?nh. Phương pháp SQL Server ho?c ch?c năng ch?n. Ho?t đ?ng này có th? thay đ?i hành vi hi?u su?t cơ b?n c?a SQL Server.
Sau đây là m?t s? ví d? t?nh hu?ng và các tác d?ng ph? có th?:
- Các m?ng giao thông (TDS) gói d? li?u đư?c quét và thay đ?i. L?a ch?n kép thêm vào m?t v? trí quan tr?ng t?i ch? đ? quá tr?nh m?ng net_readdata. Th?m chí m?t s? CPU chu k? 100 ? v? trí này có th? làm gi?m đáng k? th?c thi t?c đ? băng thông.
M?t s? thay đ?i trong d? li?u TDS th?c t? có th? d?n đ?n b? nh? scribblers. V?n đ? này đ? gây ra nhi?u v?n đ? ?n đ?nh c?a SQL Server và tham nh?ng d? li?u. V?n đ? có th? gây ra m?t gói TDS đư?c thay đ?i m?t ph?n và phát l?i rác sang SQL Server. kí nh?p Ti?n nghi ? c?p đ? này có th? l? m?t kh?u và các d? li?u nh?y c?m máy ch? SQL đó truy t?m đư?c thi?t k? đ? ngăn ch?n và giúp an toàn. - Thói quen phân tích cú pháp SQL Server đư?c gi?i đ? thay đ?i hành vi. Sau đây là các tác d?ng ph? có th?:
- K? ho?ch th?c hi?n không phù h?p v?i th?c t? truy v?n văn b?n.
- M?t l?nh g?i ch? m?t th?i gian t? khách hàng. Tuy nhiên, các l?nh đư?c th?c hi?n nhi?u l?n.
- Theo d?i s?n lư?ng Hi?n th? l?nh ban đ?u thay v? truy v?n thay đ?i.
- L?nh DBCC INPUTBUFFER Hi?n th? l?nh ban đ?u thay v? truy v?n thay đ?i.
- Ch?c năng fn_get_sql cho th?y d? li?u không chính xác. Ngoài ra, các ch?c năng fn_get_sql là nh?y c?m v?i trư?ng h?p ngo?i l? và cho k?t qu? không chính xác. Ch?c năng fn_get_sql đư?c s? d?ng b?i nhi?u các gi?i pháp giám sát và có th? gây ra v?n đ? v? các gi?i pháp giám sát.
- Nói chung ngư?i s? d?ng ch? đ? Scheduler (UMS) và SQL Server hệ điều hành (SQLOS) l?p k? ho?ch có th? b? gián đo?n. Đi?u này d?n đ?n t?n th?t v? ph?n ?ng c?a SQL Server, hi?u su?t thay đ?i, và cúp.
- Win32 API cung c?p tính năng nâng cao b?o m?t đư?c gi?i. Tùy thu?c vào vi?c th?c hi?n, kí nh?p Ti?n nghi ? c?p đ? này có th? ti?p xúc v?i m?t kh?u và d? li?u nh?y c?m khác. Nói chung, UMS và SQLOS l?p k? ho?ch b? gián đo?n. Đi?u này d?n đ?n m?t mát c?a SQL Server đáp ?ng và ng?ng ho?t đ?ng.
Ví d? sau cho th?y r?ng
kernel32!GetQueuedCompletionStatus ch?c năng đ? đư?c gi?i.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
? l?p ráp cho các ch?c năng
GetQueuedCompletionStatus , các hư?ng d?n đ?u tiên đ? đư?c thay th? v?i m?t hư?ng d?n nh?y.
0:038> u kernel32!GetQueuedCompletionStatus
kernel32!GetQueuedCompletionStatus
77e660f1 e90a9f00aa jmp 21e70000 ß This points to an address that does not appear in the loaded module list (lm). It is injected code.
77e660f6 83ec10 sub esp,10h
H?i đ?ng m? tiêm cho th?y các ho?t đ?ng detoured và m?t cu?c g?i đ?n các t?p tin MyDLL.
0:038> u 21e70000
21e70000 55 push ebp
21e70001 8bec mov ebp,esp
21e70003 51 push ecx
21e70004 8b4518 mov eax,dword ptr [ebp+18h]
21e70007 50 push eax
21e70008 8b4d14 mov ecx,dword ptr [ebp+14h]
21e7000b 51 push ecx
21e7000c 8b5510 mov edx,dword ptr [ebp+10h]
21e7000f 52 push edx
21e70010 8b450c mov eax,dword ptr [ebp+0Ch]
21e70013 50 push eax
21e70014 8b4d08 mov ecx,dword ptr [ebp+8]
21e70017 51 push ecx
21e70018 e8234d19ee call MyDLL+0x4d40 (10004d40) <- Call to the MyDLL file.
21e7001d 8945fc mov dword ptr [ebp-4],eax
21e70020 8b55fc mov edx,dword ptr [ebp-4]
B?n có th? s? d?ng g? l?i công c? cho Windows đ? xác đ?nh li?u detours đang đư?c s? d?ng. Đ? làm đi?u này, h?y làm theo các bư?c sau.
Lưu ? Luôn luôn ki?m tra phương pháp này trư?c khi b?n th? nó trong s?n xu?t. Khi b?n s? d?ng g? l?i công c? cho Windows, quá tr?nh này có th? đóng băng khi b?n ch?y l?nh. Hành vi này có th? ?nh hư?ng đ?n m?t máy ch? s?n xu?t.
- Đính kèm g? l?i công c? cho Windows cho SQL Server, ho?c t?i m?t t?p tin b?i ch?a đ?y đ? ngư?i s? d?ng.
- V?n đ? l?nh tr?nh g? l?i. L?nh này ki?m tra m?i h?nh ?nh ch?ng l?i các h?nh ?nh trên đ?a đ? xác đ?nh li?u detours đ? đư?c tiêm.
!for_each_module "!chkimg -v @#Base -d"
- Tách tr?nh g? l?i.
Đ? có đư?c g? l?i công c? cho Windows, ghé thăm Web site sau c?a Microsoft:
N?u h?nh ?nh trong b? nh? đ? đư?c thay đ?i, s?n lư?ng có th? gi?ng như sau:
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dll
Scanning section: .text
Size: 56488
Range to scan: 0c261000-0c26eca8
0c263710-0c26371a 11 bytes - ssnetlib!ConnectionClose
[ 8b ff 55 8b ec 83 ec 10:68 00 00 00 00 e9 27 8a ]
0c2641e0-0c2641ea 11 bytes - ssnetlib!ConnectionReadAsync (+0xad0)
[ 8b ff 55 8b ec 83 ec 38:68 00 00 00 00 e9 00 7e ]
0c265160-0c26516a 11 bytes - ssnetlib!ConnectionWriteAsync (+0xf80)
[ 8b ff 55 8b ec 83 ec 28:68 00 00 00 00 e9 ba 70 ]
Total bytes compared: 56488(100%)
Number of errors: 33
33 errors : 0c260000 (0c263710-0c26516a)B?n có th? xem xét vi?c l?p ráp đ? xem xét ch?t ch? hơn v?n đ?, như sau:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000 push 0
0c263715 e9278ada03 jmp MyDLL!MyGetQueuedCompletionStatus <- A detour has been installed.
Chúng tôi khuyên b?n nên liên h? v?i nhà cung c?p nh?ng detours ho?c các k? thu?t tương t? cho các thông tin v? làm th? nào đ? s? d?ng detours ho?c tương t? như k? thu?t trong SQL Server. Đ? bi?t thêm chi ti?t v? detours và các k? thu?t tương t?, h?y truy c?p Microsoft nghiên c?u Trung tâm Web site sau:
ID c?a bài: 920925 - L?n xem xét sau cùng: 10 Tháng Giêng 2013 - Xem xét l?i: 1.0
Áp d?ng
- Microsoft SQL Server 2005 Express Edition
- Microsoft SQL Server 2005 Express Edition with Advanced Services
- Microsoft SQL Server 2005 Standard Edition
- Microsoft SQL Server 2005 Workgroup Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL Server 2005 Enterprise Edition
- Microsoft SQL Server 2005 Standard X64 Edition
- Microsoft SQL Server 2005 Enterprise X64 Edition
- Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems
- Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems
- Microsoft SQL Server 2000 Personal Edition
- Microsoft SQL Server 2000 Standard Edition
- Microsoft SQL Server 2000 Workgroup Edition
- Microsoft SQL Server 2000 Developer Edition
- Microsoft SQL Server 2000 Enterprise Edition
- Microsoft SQL Server 2008 Developer
- Microsoft SQL Server 2008 Enterprise
- Microsoft SQL Server 2008 Express
- Microsoft SQL Server 2008 R2 Datacenter
- Microsoft SQL Server 2008 R2 Developer
- Microsoft SQL Server 2008 R2 Enterprise
- Microsoft SQL Server 2008 R2 Express
- Microsoft SQL Server 2008 R2 Standard
- Microsoft SQL Server 2008 R2 Web
- Microsoft SQL Server 2008 R2 Workgroup
- Microsoft SQL Server 2008 Web
- Microsoft SQL Server 2008 Workgroup
- Microsoft SQL Server 2012 Developer
- Microsoft SQL Server 2012 Enterprise
- Microsoft SQL Server 2012 Express
- Microsoft SQL Server 2012 Standard
- Microsoft SQL Server 2012 Web
- SQL Server 2012 Enterprise Core
| kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtvi |
Máy d?chQUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:
920925
(http://support.microsoft.com/kb/920925/en-us/
)