Tidak dapat terhubung dengan Sql Server Studio: error 18456, status 8 - tetapi kata sandi sudah benar!

5

Menggunakan Sql Studio Express (pada mesin Windows 7-64) untuk terhubung ke tiga server Sql Server 2005 yang berbeda menggunakan Sql Server Authentication, saya mendapatkan Galat: 1846, Negara: 8. Menurut http://blogs.msdn.com /b/sql_protocols/archive/2006/02/21/536201.aspx , ini pasti ketidakcocokan kata sandi.

masukkan deskripsi gambar di sini

Namun, ketika saya menggunakan nama pengguna dan kata sandi yang sama dari SQLCMD dan dari klien berbasis jdbc seperti Squirrel, itu berfungsi dengan baik untuk terhubung ke ketiga server. Saya juga bisa masuk ke mereka dari mesin XP dengan Sql Studio Express menggunakan nama pengguna dan kata sandi yang sama. Dan tentu saja, saya telah memeriksa empat kali lipat semua hal normal seperti topi saya tidak aktif, saya tidak mengatur dengan keyboard bahasa alternatif, saya benar-benar mengetik hal yang sama persis di kedua kasus, dll.

Lagi pula, mengapa saya mungkin mendapatkan kesalahan ketidakcocokan kata sandi ketika kata sandi itu benar? Mungkinkah ada hubungannya dengan versi MDAC yang berbeda pada mesin, dan jika demikian, apakah ada cara untuk mengembalikan Windows 7 kembali ke versi MDAC yang lebih lama?

jlarson
sumber
Menggunakan SQL Studio Express untuk mengelola database pada SQL Server 2005? Versi SQL Studio Express mana yang Anda gunakan? Hanya 2005 atau lebih tinggi yang dapat terhubung ke Server sql2005.
Es
@Ice - pertanyaan bagus. Ya, instalasi yang tidak berfungsi adalah versi Sql Server 2005, versi spesifik "Microsoft SQL Server Management Studio Express 9.00.2047.00", versi 64 bit dari sini microsoft.com/download/en/… . Pada mesin XP yang berfungsi dengan baik, ini adalah versi yang sama.
jlarson
Alangkah baiknya jika Anda memposting beberapa tangkapan layar.
KCotreau
Sudahkah Anda mencoba menghubungkan dari klien 64 bit lainnya? Apakah SQL Server bermasalah 64 bit? Apakah SQL Server sepenuhnya diperbarui?
Kirk
@Kirk - Saya hanya mencoba dengan klien jdbc, tidak ada yang secara eksplisit 64-bit. Dan server TIDAK 64 bit, dan mungkin tidak sepenuhnya terbaru (tetapi mereka tidak di bawah kendali saya). @KCotreau - Screenshot diposting di atas
jlarson

Jawaban:

3

Saya akan mencoba hal-hal berikut dalam urutan kesulitan ini:

Sebelum apa pun, saya akan mencoba alamat IP 10.19.190.x dengan nama instance: 10.19.190.x \ instance_name, juga dengan nama server. Saya menduga ini mungkin masalah protokol (lebih lanjut tentang ini di bawah), dan ini dapat mengubah cara mencoba untuk terhubung.

Kedua, itu bisa saja bug, tetapi karena beberapa memotong dan menempel, itu mungkin hanya karakter tersembunyi. Saya telah melihat pekerjaan ini untuk beberapa orang di posting: Setelah Anda memasukkan kata sandi, pindahkan kursor kembali ke awal kotak login, dan tekan enter / connect. Apakah Anda menyalin dan menempel pw?

Apakah ada firewall perangkat lunak yang menghalangi? Nonaktifkan sementara mereka karena mungkin ada port tambahan yang digunakan, yang diblokir.

Saya juga bertanya-tanya apakah satu (SQLCMD vs Studio) terhubung melalui TCP / IP, dan yang lainnya oleh Named Pipes, menyebabkan kegagalan keamanan untuk satu. Saya akan memeriksa Manajer Konfigurasi SQL (bukan Studio Manajemen) untuk memastikan semua protokol diaktifkan, dan melihat apa yang ditetapkan sebagai protokol yang disukai. Aktifkan NamedPipes dan TCP, dan atur Memori Bersama ke "diaktifkan". Saya sangat curiga. Lihatlah dokumen ini: http://groups.google.com/group/microsoft.public.inetserver.iis.security/browse_thread/thread/68c216b10e7fa70/69aacf4a582ec20c%2369aacf4a582ec20c?pli=1

Coba lepaskan kebijakan penegakan kata sandi di properti pengguna sa. Saya juga sangat curiga.

Coba jalankan perintah ini dari prompt:

rundll32.exe keymgr.dll, KRShowKeyMgr

Jika ada entri yang terkait dengan SQL, hapuslah. Coba tambahkan kredensial untuk SQL secara manual. Saya telah melihat banyak hal tentang Vista (jadi saya akan menganggap Windows 7 juga) menelanjangi token keamanan tertentu, dan saya bisa melihat ini dilewati pada baris perintah.

Saya juga akan mencoba mengatur ulang kata sandi sa dalam SQL, dan mengubahnya kembali. Kemudian jika akun sa sedang digunakan untuk memulai SQL Server, ubah kata sandi dalam layanan yang terkait dengan SQL Server, dan mulai kembali (saya mencoba menyinkronkannya agar sesuai). Terkait dengan ini adalah perintah-perintah ini:

    exec sp_password @new = 'sqlpassword', @loginame = 'sa'
    alter login sa
    with password = 'sqlpassword' unlock,
    check_policy = off,
    check_expiration = off 

Juga, sudahkah Anda mempertimbangkan mengonfigurasi audit masuk?

http://msdn.microsoft.com/en-us/library/ms175850.aspx

Jika tidak ada yang berhasil, akan sangat membantu untuk melihat format yang Anda gunakan untuk nama pengguna SQL untuk masuk ke SLQ Manager, dan string SQLCMD yang Anda gunakan. Tentu saja, ubah sesuatu yang spesifik, kecuali itu nama pengguna adalah "sa". Satu pertanyaan lagi: Satu lingkungan server SQL, atau multi?

Saya menemukan beberapa di sini, tetapi berhasil menemukan hanya hal-hal yang saya pikir relevan: http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx?PageIndex= 7 # komentar

KCotreau
sumber
Saya tidak tahu apa yang terjadi pada karunia (bug SE?), Tapi saya menambahkannya kembali. Saya akan mencoba saran Anda sedikit kemudian, meskipun saya sudah mencoba KRShowKeyMgr, lihat jawaban harrymc di bawah ini.
jlarson
Entah bagaimana terjawab jawabannya ... terlalu fokus pada hal-hal lain.
KCotreau
@KCotreau - ok, terima kasih atas waktu Anda. Berikut adalah beberapa tanggapan: 1) apa yang Anda maksud dengan nama instance (nama database? Nama server? Sesuatu yang lain? Bagaimana saya menemukan itu)? 2) Saya yakin saya mengetik kata sandi dengan benar (setidaknya sebagian besar waktu) karena saya tidak mengalami kesulitan masuk melalui klien lain. Saya sudah mencoba menempel, mengetik, hal yang sama .. 3) Saya percaya fakta bahwa saya dapat terhubung melalui klien lain alasan firewall perangkat lunak tidak menjadi masalah (saya tahu tidak ada apa-apa kecuali yang dibangun pada Windows FW yang dibuka dengan tepat) (lanjutan di bawah)
jlarson
@KCotreau melanjutkan: 4) Saya tidak punya alasan untuk percaya baik SQLCMD atau Studio menghubungkan dengan cara apa pun kecuali TCP, semuanya default, dan saya bisa melihat lalu lintas TCP mengalir di WireShark (meskipun saya tidak bisa mengartikan aliran), jumlah yang sama dengan saat Saya terhubung melalui klien lain 5) Saya tidak diizinkan untuk mengotak-atik pengaturan server SQL dalam kasus ini sehingga meninggalkan Memori Bersama, memodifikasi "sa", dll. 6) seperti yang disebutkan KRShowKeyMgr mengarah ke mana-mana 7) Hal ini terjadi pada beberapa SQL Server, dan dalam semua kasus klien berbasis jdbc bekerja, SQL Studio tidak (dan kesalahan persis sama). Tersangka bug Studio.
jlarson
Yah, karena tidak bisa bermain-main, saya punya perasaan yang kuat Anda tidak akan menyelesaikan masalah karena perubahan pasti harus dilakukan. Mengapa Anda tidak memberikan daftar itu kepada orang-orang IT Anda, dan minta mereka memecahkan masalah berdasarkan itu, dan mungkin mereka dapat membantu Anda menyelesaikannya. Untuk menjawab satu pertanyaan yang saya bisa: Nama server persis seperti apa ... alamat IP yang Anda sambungkan mungkin memiliki nama sebenarnya, dan ketika Anda menginstal SQL, database dijalankan dengan "instance". Anda dapat menemukan info ini dengan menjalankan pernyataan pilih ini di server: pilih @@ servername + '\' + @@ servicename
KCotreau
0

Cobalah untuk menggunakan Command Prompt untuk mereset kata sandi Anda yang hilang. Saya telah menggunakannya untuk mereset kata sandi yang hilang dengan sukses pada SQL Server 2000/2005.

  1. Buka Prompt Perintah (Mulai -> Jalankan -> cmd)
  2. Ketik perintah ikuti, dan tekan Enter setelah setiap baris:

    Osql –S yourservername –E
    EXEC sp_password NULL, 'yourpassword', 'sa'
    GO
    
barbara
sumber
Saya belum kehilangan kata sandi - seperti yang disebutkan, saya dapat menghubungkan AOK dari komputer lain dengan kata sandi yang sama, dan dari mesin yang sama menggunakan Klien SQL yang berbeda.
jlarson
0

Tembakan panjang, tetapi Anda mungkin memeriksa kata sandi yang salah di-cache oleh Windows.

Dari Access Stored Nama Pengguna dan Kata Sandi dengan rundll32.exe :

Applet Nama Pengguna dan Kata Sandi Tersimpan memungkinkan Anda menetapkan nama pengguna dan kata sandi untuk digunakan saat perlu mengautentikasi diri Anda ke layanan di domain selain yang saat ini Anda masuki.

Cara normal menjalankan applet ini bisa sulit ditemukan dengan cepat, jadi di sini adalah cara untuk meluncurkannya menggunakan pintasan desktop menggunakan program rundll32.exe:

Klik START - RUN dan ketik berikut ini (diikuti oleh ENTER):

rundll32.exe keymgr.dll, KRShowKeyMgr

Setelah itu, Anda harus keluar, lalu kembali.

harrymc
sumber
terima kasih, saya tidak pernah tahu tentang ini. Namun, program muncul dengan daftar kosong, sehingga tidak boleh terlibat.
jlarson
Sudahkah Anda mencoba menjalankan SQL Studio sebagai administrator?
harrymc
ya, saya sudah mencobanya, tidak berhasil ...
jlarson
Mungkinkah Anda memiliki masalah cASe sEnsiTiVitY dengan nama database dan / atau kata sandi pengguna +? Kesalahan dengan nama basis data juga dicatat sebagai kegagalan login.
harrymc
@harrymc - saya tidak menyadarinya. tapi saya sudah memeriksa ulang case dengan database dan nama pengguna, dan mendapatkan 100% yang benar (serta kata sandi, yang saya yakin saya sudah benar) masih tidak membantu ...
jlarson
0

Anda dapat mencoba mengambil media instalasi SQL Server Anda, dan menginstal SQL Management Studio yang tepat pada komputer Windows 7 Anda, dan melihat apakah itu bekerja lebih baik.

Gereja
sumber