Düzeltme: erişim ihlali oluşuyor, bir RPC çağrısı yapıldığında biraz geçersiz parametre değeri içerir.

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:314128
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
# HATA: 356323 (shiloh_bugs)
Belirtiler
SQL Profiler izlemesi çalıştırdığınızda SQL Server 2000 Service Pack 2'de (SP2), RPC olayları içeren (RPC: Başlangıç veya RPC: tamamlandı), 9 CNetInputBuffer::Init erişim ihlaline neden oluyor daha büyük bir değere sahip bir bit parametre içeren bir deyim.

SQL Server 2000 Service Pack 1 (SP1), izleme kesildi ve SQL Profiler bir hata iletisi alırsınız, ancak SQL Server'da hiçbir erişim ihlali oluşur. Yalnızca parametresinin veri türü, bu sorunla ilgili Tablo sütunun veri türü; ilgisizdir.

Not: Tablo sütun bit dışında başka bir tür olabilir.

SQL Server 2000 SP2 (8.00.534) aşağıdaki yığın dökümü oluşturur:
   Short Stack Dump   00410B23 Module(sqlservr+00010B23) (CNetInputBuffer::Init+0000005C)   004B7422 Module(sqlservr+000B7422) (CNetInputStream::FAddEventFragment+0000005E)   00639EB1 Module(sqlservr+00239EB1) (PcnisGetRpcTraceInput+000004BB)   0063A2C1 Module(sqlservr+0023A2C1) (PostRPC+000000AB)   00605A07 Module(sqlservr+00205A07) (execrpc+0000095E)   00437E05 Module(sqlservr+00037E05) (execute_rpc+00000019)   00410E73 Module(sqlservr+00010E73) (process_commands+00000210)   41073379 Module(UMS+00003379) (ProcessWorkRequests+0000024A)   41073071 Module(UMS+00003071) (ThreadStartRoutine+000000BD)   7800A27B Module(MSVCRT+0000A27B) (beginthread+000000CE)   77E8758A Module(KERNEL32+0000758A) (SetFilePointer+0000018A)				
Çözüm

Hizmet paketi bilgileri

Bu sorunu gidermek için <a0></a0>, Microsoft SQL Server 2000 için en son hizmet paketini edinin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
290211En son SQL Server 2000 hizmet paketi nasıl elde edilir

Düzeltme bilgileri

Not: aşağıdaki düzeltmeyi Microsoft SQL Server 2000 Service Pack 3'ün yayımlanmasından önce oluşturulmuştur.

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yenisi) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Version    Size     File name   ------------------------------------------------   12-DEC-2001  8.00.552   7,442,513  Sqlservr.exe				
Not: Dosya bağımlılıkları nedeniyle, en son düzeltme veya özellik, bu dosyaları içeren ek dosyalar da içerebilir.


Durum
Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft SQL Server 2000 Service Pack 4'te giderilmiştir.
Daha fazla bilgi
Erişim ihlali üretmek için <a0></a0>, RPC olayları en az birini içeren bir SQL Profiler izlemesi çalıştırın (RPC: Başlangıç veya RPC: tamamlandı), ve sonra da aşağıdaki C kodu çalıştırın:
	long int myBitStatus=0xff; //Invalid value	SQLRETURN   retcode;	SQLHENV     henv = NULL;	SQLHDBC     hdbc = NULL;	SQLHSTMT    hstmt = NULL;	PTSTR       szDataSource = _T("localserver");	PTSTR       szUID = _T("sa");	PTSTR       szPWD = _T("sa_password");	if (SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv) == SQL_ERROR)		return 1;	SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3,	SQL_IS_INTEGER);	if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc) == SQL_ERROR)		return 1;	if (SQLConnect(hdbc, (SQLTCHAR*) szDataSource, SQL_NTS,	(SQLTCHAR*) szUID, SQL_NTS, (SQLTCHAR*) szPWD, SQL_NTS) == SQL_ERROR)		return 1;	if (SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt) == SQL_ERROR)		return 1;	retcode = SQLAllocHandle(hstmt, hdbc, &hstmt);	retcode=SQLBindParameter(hstmt, 				 1, 				 SQL_PARAM_INPUT, 				 SQL_C_BIT,				 SQL_BIT, 				 1, 				 0, 				 &myBitStatus, 				 0, 				 &myBitStatus);	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)	{		retcode = SQLExecDirect (hstmt, "SELECT au_id FROM pubs.dbo.authors WHERE contract = ?", SQL_NTS);	}				
Sunucu, SQL Server 2000 SP2 çalışıyorsa bu erişim ihlali oluşur; bu sorun SQL Profiler aracının sürüm etkilemez.
Profiler erişim ihlali

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 314128 - Son İnceleme: 02/03/2014 06:21:30 - Düzeltme: 5.4

Microsoft SQL Server 2000 Service Pack 2

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbbug kbfix kbsqlserv2000presp3fix KB314128 KbMttr
Geri bildirim