Tidak dapat terhubung ke SQL Server menggunakan akun 'sa', apa yang saya lewatkan?

20

Saya mencoba masuk ke contoh SQL Server 2005 Express menggunakan perintah berikut:

osql -S .\INSTANCE -U sa -P password

Saya mendapatkan kesalahan: Login gagal untuk 'sa' pengguna.

Saya dapat terhubung dengan baik menggunakan saklar -E. Saya harus menambahkan bahwa itu sudah berfungsi selama berbulan-bulan. Saya pikir seseorang mengubah sesuatu tetapi saya tidak tahu apa itu.

Inilah yang saya coba:

  • Login menggunakan otentikasi Windows dan mengubah kata sandi sa:

    sp_password NULL, newpassword, 'sa'

  • Mengaktifkan login 'sa':

    ALTER LOGIN sa ENABLE; GO ALTER LOGIN sa WITH PASSWORD = 'newpassword'; PERGILAH

  • Memeriksa Registry Windows untuk memastikan otentikasi campuran diaktifkan. Nilainya benar: LoginMode = 2

Apa lagi yang harus saya periksa? Terima kasih sebelumnya.

INFORMASI TAMBAHAN:

Ini adalah Server Windows 2003. Mereka memiliki beberapa kebijakan kata sandi diaktifkan, saya ingat bahwa saya perlu mengubah kata sandi 'sa' default yang digunakan aplikasi saya ketika menginstal SQL Server ke yang lain yang lebih kompleks.

Saya terhubung menggunakan VNC, jadi saya tidak bisa menggunakan SSMS

Aplikasi saya dapat terhubung menggunakan login SQL Server lain, tetapi tidak ada 'sa'

Akhirnya, jika kita tidak menemukan solusi, saya akan menghapus instance ini dan menginstalnya lagi, tetapi saya benar-benar ingin mencari tahu apa masalahnya. Kalau-kalau itu terjadi lagi dan hanya untuk keingintahuan.

PERASAAN
sumber

Jawaban:

23

Seperti yang dikatakan @SpaceManSpiff, jangan lupa untuk memeriksa apakah mode Campuran diaktifkan. Seseorang mengubah pengaturan itu untuk saya dan saya memiliki masalah yang sama. Inilah cara mengatasinya:

  1. Masuk ke MSSQL Server Management Studio dengan Windows Authentication.
  2. Di SQL Server Management Studio Object Explorer, klik kanan server, dan kemudian klik Properti.
  3. Di bawah Properti Server, pilih halaman "Keamanan".
  4. Pilih otentikasi Server sebagai "mode SQL Server dan Windows Authentication" dan klik Ok. Properti Database Manajemen MSSQL Server
  5. Mulai ulang Layanan SQL dan kemudian coba masuk dengan detail 'sa'.

Sumber: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/

Imanuel
sumber
12

Ok, saya sudah bisa mencari tahu apa yang terjadi (semacam) dan mendapatkan solusi.

Tampaknya satu minggu yang lalu mereka bermain dengan kebijakan Keamanan Windows. Mereka menambahkan / menghapus izin tetapi mereka tidak bisa memberi saya apa yang mereka lakukan karena mereka benar-benar tidak tahu (aduh!).

Lagi pula, saya terhubung menggunakan otentikasi Windows (-E switch) dan menjalankan permintaan berikut:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

Kuncinya di sini adalah CHECK_POLICY = OFF . Itu berhasil. Saya harap ini akan membuat 'sa' kebal terhadap perubahan di masa depan dalam pengaturan domain mereka.

Terima kasih atas semua saran Anda.

PERASAAN
sumber
6

Hal-hal untuk diperiksa

Kata sandi pada akun SA

Mode campuran diaktifkan

Apakah akun SA dinonaktifkan?

Buat akun SQL lain dan coba (karena Anda bisa masuk dengan -E Anda harus bisa melakukan ini)

Uji menggunakan koneksi ODBC, Anda dapat membuat koneksi ini untuk melihat apakah SA berfungsi

Oh dan selalu menangkap semua di windows, reboot (serius, ini membantu pengujian server SQL saya setelah saya melakukan hal itu)

SpaceManSpiff
sumber
1

Saya punya masalah itu beberapa tahun yang lalu setelah menginstal Windows ServicePack (tidak ada Pembaruan SQLServer, tetapi Windows), SQLServer menolak koneksi, sampai SQLServer ServicePack diinstal juga! Saya menemukan pesan di eventlog setelah beberapa jam.

Saya pikir mereka melakukan ini, karena mereka tahu ada lubang keamanan besar dan ingin memaksa semua admin untuk menginstal paket. Namun, karena beberapa waktu yang lalu, saya tidak memiliki versi yang tepat dan seterusnya. Saya akan merekomendasikan, Anda memeriksa log peristiwa dan menginstal semua / paket layanan terbaru.

Tim Büthe
sumber
Ini terlihat menjanjikan, saya akan mencobanya pada hari Senin dan melaporkan kembali. Terima kasih untuk sarannya.
JAG
Akhirnya saya tidak mencoba menginstal Paket Layanan terbaru. Lihat 'jawaban diterima' saya sendiri.
JAG
0

Dengan asumsi Anda memiliki Management Studio atau Management Studio Express diinstal, dapatkah Anda menghubungkan Management Studio ke instance menggunakan sa?

JR

John Rennie
sumber
1
SSMS tidak diinstal dan saya lebih suka tidak menginstalnya jika memungkinkan. Juga, menghubungkan dari komputer lain dengan SSMS bukanlah suatu pilihan karena ini adalah server pelanggan. Hanya alat baris perintah yang tersedia.
JAG
Jika Anda memiliki Management Studio di PC lain, bahkan jika itu di ujung VPN, Anda masih bisa terhubung. Intinya adalah untuk memeriksa apakah ada sesuatu yang kacau dengan pengaturan server, atau apakah masalahnya terletak pada perintah osql.
John Rennie
0

Apakah Anda memastikan bahwa Anda me-restart layanan SQL Server setelah Anda membuat perubahan registri?

David Spillett
sumber
Tidak perlu mengubahnya karena memiliki nilai yang benar.
JAG
0

Apakah ada yang menghapus database yang merupakan database default untuk "sa"?

Jika itu masalahnya, coba

EXEC sp_defaultdb 'sa', 'New default database'
percikan
sumber
Secara teori, hanya ada satu database dan itu ada. Saya tidak menjalankan perintah itu.
JAG
Biasanya itu 'tuan'. Tapi saya pikir itu bukan masalah ...
splattne
Saya baru saja mencobanya tetapi tidak ada bedanya. Bagaimanapun, terima kasih.
JAG
0

Jika Anda menginstal SQL Express 2014, Anda harus melakukan beberapa hal untuk menyelesaikan kesalahan ini jika Anda mencoba masuk dengan akun [sa].

  1. Akun "sa" akan dinonaktifkan. Jadi, Anda harus beralih dari akun dinonaktifkan ke diaktifkan di bawah bagian status akun.

  2. Server harus mengaktifkan otentikasi windows dan sql server. Secara default, hanya autentikasi windows yang diaktifkan.

  3. Setel ulang kata sandi. (lihat kode di bawah; ServerFault memiliki bug di mana kode tidak muncul sama ketika menggunakan daftar yang dipesan pada 6/8/2016)

  4. Mulai ulang Layanan Windows untuk SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
MacGyver
sumber
0

Terkadang login dinonaktifkan karena banyak kata sandi yang salah atau pelanggaran kebijakan apa pun. Jadi yang bisa kita lakukan hanyalah login dengan otentikasi jendela, ubah kata sandi dan aktifkan kembali login.

Masuk ke database dengan Otentikasi Windows

Jalankan Kueri:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

Penggunaan CHECK_POLICY diperlukan karena menentukan bahwa kebijakan kata sandi Windows komputer yang menjalankan SQL Server harus diberlakukan pada login ini. Standarnya adalah ON ketika kita MATI itu akan mengubah kata sandi tanpa kesulitan. Nanti kamu bisa ON

CATATAN: Apa yang saya amati bahwa ketika CHECK_POLICY menggunakan solusi GUI SSME untuk mengubah kata sandi tidak akan berfungsi setiap saat. Saya tidak punya alasan di balik tetapi saya telah amati.

jay patel
sumber
0

saya mengatasinya sebagai berikut logon dengan properti goto otentikasi windows Anda dari server >> Keamanan dan mengubah server authenticati

Preet Inder Singh
sumber
1
Bisakah Anda menghabiskan lebih banyak dengan memformat (dan menyelesaikan) jawaban Anda? Saat ini ditulis, tidak banyak membantu.
asdmin