FIX: Anda menerima pesan galat "Tidak dapat membuat konteks SSPI" ketika Anda mencoba untuk menyambung ke komputer server SQL Server 2000 SP3

Ringkasan

Ketika Anda mencoba untuk menyambung ke komputer server Microsoft SQL Server 2000 Paket Layanan 3 (SP3) dari komputer klien, sambungan gagal dengan pesan galat jika nama server tidak dapat diselesaikan dari alamat Protokol Internet (IP). Perilaku ini terjadi karena SQLOLEDB salah menafsirkan nilai kembali fungsi ConnectionGetSvrUser dbnetlib.

  • Hotfix ini menyelesaikan masalah ini.

  • Untuk mengatasi masalah ini, secara manual membuat entri host untuk alamat IP di komputer klien.

  • Untuk mereproduksi masalah, membuat dan mengkonfigurasi alamat IP dinamis dari komputer server, dan kemudian menyambungkan komputer server dengan menggunakan SQL Query Analyzer atau Rowset penampil dari komputer klien.

Gejala

Ketika Anda mencoba untuk menyambung komputer klien ke komputer server Microsoft SQL Server 2000 SP3, nama server tidak dapat diselesaikan dari alamat Protokol Internet (IP), dan sambungan gagal.

Saat menyambung ke server SQL Server 2000 SP3 komputer dengan SQL Query Analyzer, Anda menerima pesan galat berikut:

Server: Msg 11004, tingkat 16, negara bagian 1
[Microsoft] [ODBC SQL Server pengandar] Tidak dapat membuat konteks SSPI

Ketika Anda menggunakan SQL Server OLE DB penyedia (SQLOLEDB) untuk menyambung ke SQL Server 2000 server komputer dengan menggunakan Rowset Viewer, Anda menerima pesan galat berikut:

Sumber: "penyedia DB OLE Microsoft SQL Server"

Antarmuka: IID_IDBInitialize
Hasil: 0x80004005 = E_FAIL

ISQLErrorInfo: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "tidak dapat membuat konteks SSPI"

Berkas: D:\MDACTools\rowsetviewer\CBase.cpp
Baris: 1067

Penyebab

Ketika SQLOLEDB memanggil fungsi pustaka dbnetlib ConnectionGetSvrUser , itu salah menafsirkan yang fungsi ini mengembalikan nilai Boolean. ConnectionGetSvrUser function dirancang untuk mengembalikan void. Oleh karena itu, apa pun yang berada di dalam daftar EAX menjadi nilai kembali.


ConnectionGetSvrUser function internal memanggil fungsi gethostbyaddr . Gethostbyaddr function memperoleh nama host yang sesuai dengan alamat IP tertentu. Jika fungsi gethostbyaddr gagal, mengembalikan karakter nol untuk mendaftar EAX. Oleh karena itu, fungsi ConnectionGetSvrUser mengembalikan nilai FALSE . Perilaku ini dapat menyebabkan kegagalan logon ke komputer server SQL Server 2000 SP3.


Pemecahan masalah

Tersedia hotfix yang didukung dari Microsoft. Namun, hotfix ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Menerapkan hotfix ini hanya ke sistem yang mengalami masalah khusus ini.

Apabila hotfix tersedia untuk diunduh, ada bagian "Tersedia unduhan Hotfix" di bagian atas artikel Pangkalan Pengetahuan ini. Jika bagian ini tidak muncul, kirimkan permintaan ke layanan pelanggan Microsoft dan dukungan untuk mendapatkan hotfix.

Catatan Jika terjadi masalah tambahan atau apabila pemecahan masalah apa pun diperlukan, Anda mungkin harus membuat permintaan layanan secara terpisah. Biaya dukungan biasa akan berlaku untuk dukungan tambahan pertanyaan dan masalah yang tidak memenuhi syarat untuk hotfix ini. Untuk daftar lengkap nomor telepon layanan pelanggan Microsoft dan dukungan atau untuk membuat permintaan layanan terpisah, kunjungi situs Web Microsoft berikut ini:

http://support.microsoft.com/contactus/?ws=supportCatatan Formulir "Tersedia Unduhan Hotfix" menampilkan bahasa hotfix tersedia. Jika Anda tidak melihat bahasa Anda, hal ini karena hotfix tidak tersedia untuk bahasa tersebut. Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam waktu universal terkoordinasi (UTC). Ketika Anda melihat informasi berkas, akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab zona waktu di alat tanggal dan waktu di Panel kontrol.

Date Time Version Size File name
--------------------------------------------------------------

15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll

Pemecahan masalah

Untuk mengatasi masalah ini, secara manual membuat entri host pada komputer klien untuk alamat IP yang ingin Anda Sambungkan.

  1. Mulai Windows Explorer.

  2. Cari berkas tuan rumah, dan kemudian Buka berkas di notepad.

    Catatan Anda dapat menemukan berkas di lintasan %SystemRoot%\System32\Drivers\Etc.

  3. Tambahkan berikut ini pada akhir berkas:
    Acak IPNama komputer

    Catatan Acak IP adalah placeholder untuk alamat IP yang tidak sedang digunakan oleh komputer lain di jaringan. Nama komputer adalah placeholder untuk nama komputer yang memiliki SQL Server 2000 SP3 berjalan di atasnya. Alamat Acak alamat IP dan nama Nama komputer harus dipisahkan sekurangnya satu ruang.

  4. Pada File menu, klik Simpan.

  5. Tutup berkas.

Status

Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Informasi lebih lanjut

Langkah-langkah untuk mereproduksi masalah

Mengkonfigurasi alamat IP dinamis

  1. Logon sebagai administrator untuk komputer yang menjalankan SQL Server 2000 SP3.

  2. Di Panel kontrol, klik dua kali Sambungan jaringan.

  3. Klik dua kali sambungan area lokal yang ingin Anda ubah.

  4. Di kotak dialog Status sambungan Area lokal , klik properti. Ditampilkan kotak dialog Properti sambungan Area lokal .

  5. Di kotak sambungan ini menggunakan item berikut ini , klik Protokol Internet (TCP/IP), dan kemudian klik properti. Ditampilkan kotak dialog properti protokol Internet (TCP/IP) .

  6. Klik mendapatkan alamat IP secara otomatis, dan kemudian klik OK.

  7. Di kotak dialog Properti sambungan Area lokal , klik tutup.


  8. Di kotak dialog Status sambungan Area lokal , klik tutup.

  9. Klik Mulai, klik Jalankan, ketik cmd, dan lalu klik OKE.

  10. Pada prompt perintah, ketik ping Nama komputer, dan kemudian tekan ENTER.

    Catatan Nama komputer adalah placeholder untuk nama komputer yang menjalankan SQL Server 2003

    Anda menerima pesan galat yang mirip berikut ini:

    Ping Nama komputer [Dynamic IP] dengan 32 byte data:

    Balasan dari Dynamic IP: bytes = 32 time < 1ms TTL = 128
    Balasan dari Dynamic IP: bytes = 32 time < 1ms TTL = 128
    Balasan dari Dynamic IP: bytes = 32 time < 1ms TTL = 128

    Statistik ping untuk Dynamic IP:
    Paket: Dikirim = 4, Received = 4, Lost = 0 (0% loss)
    Perkiraan waktu perjalanan round dalam Mili-detik:
    Minimum = 0ms, maksimum = 0ms, rata-rata = 0ms
    Catatan Dynamic IP adalah placeholder untuk dynamic IP komputer Nama komputer .

  11. Untuk keluar dari wantian perintah, ketik exit, dan kemudian tekan ENTER.

  12. Ulangi langkah c hingga e. Klik menggunakan alamat IP berikut ini.

  13. Di kotak Alamat IP , ketik alamat IP dinamis .

    Catatan Dynamic IP adalah placeholder untuk dynamic IP komputer Nama komputer .

  14. Di kotak penutup Subnet , ketik subnet mask untuk jaringan Anda.

  15. Di kotak Default gateway , ketik alamat IP komputer atau perangkat di jaringan yang tersambung jaringan Anda ke jaringan lain atau ke Internet.

  16. Di kotak server DNS yang Anda pilih , ketik alamat IP komputer yang dapat memecahkan nama host ke alamat IP.

  17. Di kotak server DNS alternatif , ketik alamat IP komputer DNS yang ingin digunakan jika server DNS (Domain Name System) yang dipilih tidak tersedia.

  18. Klik Lanjutan. Tataan TCP/IP lanjut muncul.

  19. Di bawah Alamat IP, klik Tambah. Ditampilkan kotak dialog Alamat TCP/IP .

  20. Di kotak Alamat IP , ketik alamat IP acak .

    Catatan Acak IP adalah placeholder untuk alamat IP yang tidak sedang digunakan oleh komputer lain di jaringan.

  21. Di kotak penutup Subnet , ketik subnet mask untuk jaringan Anda, dan kemudian klik Tambah.

  22. Tataan TCP/IP lanjut, klik OK.

  23. Pada properti protokol Internet (TCP/IP) klik OK. Di kotak dialog Properti sambungan Area lokal , klik tutup. Di kotak dialog Status sambungan Area lokal , klik tutup.

Menyambung ke komputer server SQL Server 2000 SP3 dari komputer klien melalui SQL Query Analyzer

  1. Mulai SQL Query Analyzer. Ditampilkan kotak dialog terhubung ke SQL Server .

  2. Di kotak SQL Server , ketik IP acak.

    Catatan Acak IP adalah placeholder untuk alamat IP yang tidak sedang digunakan oleh komputer lain di jaringan.

  3. Sambungkan dengan menggunakan, klik otentikasi Windows.

  4. Klik Oke. Anda melihat pesan galat yang disebutkan di bagian "gejala".

Menyambung ke komputer server SQL Server 2000 SP3 dari komputer klien melalui Rowset Viewer

  1. Mulai Rowset Viewer. Jendela Microsoft OLE DB RowsetViewer muncul.

  2. Pada File menu, klik Menyambung penuh. Ditampilkan kotak dialog Penuh menyambung - Deskripsi tidak tersedia .

  3. Dalam daftar penyedia , klik SQLOLEDB pada sambungan.

  4. Di kotak sumber data , ketik IP acak pada sumber.

    Catatan Acak IP adalah placeholder untuk alamat IP yang tidak sedang digunakan oleh komputer lain di jaringan.

  5. Di bawah Login, klik DBPROMPT_NOPROMPT dalam daftar Prompt .

  6. Pada tab properti , klik lanjut. Kotak dialog IDBProperties::SetProperties muncul.

  7. Klik untuk memilih kotak centang DBPROP_AUTH_INTEGRATED , dan kemudian klik OK.

  8. Di kotak dialog Penuh menyambung - Deskripsi tidak tersedia , klik OK. Anda melihat pesan galat yang disebutkan di bagian "gejala".

Catatan Komputer klien dan server SQL Server 2000 SP3 komputer harus di domain yang sama. Ketika Anda mencoba untuk menyambung ke komputer server SQL Server 2000 SP3 dengan Acak IP dari komputer yang sama, menghubung ke server SQL Server 2000 SP3 komputer tanpa kesalahan.

Referensi

Untuk informasi selengkapnya, kunjungi situs Web Microsoft Developer Network (MSDN) berikut:

ConnectionGetSvrUser
http://msdn2.microsoft.com/en-us/library/Aa470056.aspx

Ikhtisar OLE DB alat pengujian
http://msdn2.microsoft.com/en-us/library/ms721219.aspxUntuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

323444 cara mengubah alamat IP adaptor jaringan di Windows Server 2003

Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

824684 Deskripsi tentang terminologi standar yang digunakan untuk menjelaskan pembaruan perangkat lunak Microsoft

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×