MSSQLSERVER_18456
Berlaku untuk: SQL Server
Detail
Atribut | Nilai |
---|---|
Nama Produk | SQL Server |
ID Peristiwa | 18456 |
Sumber Kejadian | MSSQLSERVER |
Komponen | SQLEngine |
Nama Simbolis | LOGON_FAILED |
Teks Pesan | Gagal masuk untuk pengguna '%.*ls'.%.*ls |
Penjelasan
Anda mendapatkan pesan kesalahan ini ketika upaya koneksi ditolak karena kegagalan autentikasi. Login pengguna dapat gagal karena banyak alasan, seperti kredensial yang tidak valid, kedaluwarsa kata sandi, dan mengaktifkan mode autentikasi yang salah. Dalam banyak kasus, kode kesalahan menyertakan deskripsi.
Tindakan pengguna
Contoh berikut adalah beberapa kegagalan masuk umum. Pilih kesalahan tepat yang Anda alami untuk memecahkan masalah:
Gagal masuk untuk pengguna '<nama> pengguna' atau login gagal untuk pengguna '<domain>\<username>'
Masuk gagal untuk LOG MASUK pengguna 'NT AUTHORITY\ANONYMOUS'
Gagal masuk untuk pengguna '<nama> pengguna' atau login gagal untuk pengguna '<domain>\<username>'
Jika nama domain tidak ditentukan, masalahnya adalah upaya masuk SQL Server yang gagal. Jika nama domain ditentukan, masalahnya adalah login akun pengguna Windows yang gagal. Untuk potensi penyebab dan resolusi yang disarankan, lihat:
Potensi penyebab | Resolusi yang disarankan |
---|---|
Anda mencoba menggunakan Autentikasi SQL Server, tetapi instans SQL Server dikonfigurasi untuk mode Autentikasi Windows. | Verifikasi bahwa SQL Server dikonfigurasi untuk menggunakan mode SQL Server dan Autentikasi Windows. Anda dapat meninjau dan mengubah mode autentikasi untuk instans SQL Server Anda di halaman Keamanan di bawah Properti untuk instans yang sesuai di SQL Server Management Studio (SSMS). Untuk informasi selengkapnya, lihat Mengubah mode autentikasi server. Atau, Anda dapat mengubah aplikasi untuk menggunakan mode Autentikasi Windows untuk menyambungkan ke SQL Server. Catatan: Anda dapat melihat pesan seperti berikut ini di log Kesalahan SQL Server untuk skenario ini: Login failed for user '<UserName>'. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only. |
Anda mencoba mengakses SQL Server melalui grup dan Anda melihat pesan kesalahan. | Jika Anda tidak memiliki izin yang diperlukan untuk mengakses server, penyedia akan menampilkan pesan kesalahan "Gagal masuk untuk pengguna 'contoso/user1'". Gunakan fitur "Akses melalui grup" yang membantu Anda mengakses server berdasarkan keanggotaan grup Anda. Saat Anda menjalankan prosedur tersimpan xp_logininfo 'contoso/user1' , hal berikut ini mungkin terjadi:- Jika Anda melihat kesalahan, SQL Server tidak dapat menyelesaikan nama pengguna sama sekali. Kemungkinan nama tidak ada di Direktori Aktif (AD) atau mungkin ada masalah saat menyambungkan ke pengendali domain (DC). Coba dengan nama lain untuk memeriksa apakah masalah tersebut khusus untuk akun tertentu. - Jika Anda menyambungkan ke server lintas domain, grup harus berada di domain SQL Server, dan bukan domain pengguna, sehingga keanggotaannya dapat diselesaikan. - Ketika kueri database tidak mengembalikan baris, itu berarti bahwa tidak ada grup yang menyediakan akses ke server. Saat kueri mengembalikan satu atau beberapa baris, itu berarti bahwa pengguna termasuk dalam grup yang menyediakan akses. DBA dapat memeriksa kembali izin dengan memeriksa folder Security\Logins di SQL Server Management Studio (SSMS). Security\Logins menampilkan daftar login yang dibuat. Jika ini adalah database mandiri, DBA dapat memeriksa Security\Logins di bawah nama database untuk memeriksa dan mengelola login. Untuk informasi selengkapnya, lihat Mengonfigurasi Kontrol dan Izin Akses Pengguna. |
Login SQL tidak diaktifkan | Sistem manajemen database (DBMS) mungkin menunjukkan beberapa variasi Login failed for user '<username>' pesan. Untuk mengatasi kesalahan ini, ikuti langkah-langkah ini:1. Periksa apakah log kesalahan SQL Server berisi pesan kesalahan "Gagal masuk untuk pengguna '<nama> pengguna'. Alasan: Upaya untuk masuk menggunakan autentikasi SQL gagal. Server hanya dikonfigurasi untuk autentikasi Windows." 2. Gunakan salah satu metode berikut untuk mengatasi kesalahan: - Gunakan login terintegrasi. Misalnya, untuk Penyedia OLE DB, tambahkan INTEGRATED SECURITY=SSPI ke string koneksi, dan untuk driver ODBC, tambahkan TRUSTED_CONNECTION=YES . Penyedia .NET menerima salah satu sintaksis.Catatan: Ini mungkin menyebabkan masalah lain jika tidak dikonfigurasi dengan benar untuk mengizinkan autentikasi terintegrasi, dan perlu diselidiki sebagai masalah terpisah. - Aktifkan login SQL di server: a. Di SQL Server Management Studio, klik kanan pada nama SQL Server di Object Explorer dan pilih Properti. b. Di panel Keamanan , pilih mode SQL Server dan Autentikasi Windows. c. Pilih OK. d. Mulai ulang SQL Server agar perubahan terjadi. Catatan: Ini mungkin menyebabkan masalah lain, seperti menentukan login SQL. - Cobalah untuk menentukan akun Windows lokal atau akun domain untuk nama pengguna. Hanya login SQL yang diizinkan. Aplikasi harus menggunakan keamanan terintegrasi. |
Login tidak ada di instans SQL Server yang coba Anda sambungkan. | Verifikasi bahwa login SQL Server ada dan Anda telah mengejanya dengan benar. Jika login tidak ada, buatlah. Jika ada tetapi salah eja, perbaiki dalam aplikasi string koneksi. Errorlog SQL Server akan memiliki salah satu pesan berikut: - Login failed for user 'username'. Reason: Could not find a login matching the name provided. - Login failed for user 'Domain\username'. Reason: Could not find a login matching the name provided. Ini bisa menjadi masalah umum jika Anda menyebarkan aplikasi yang menggunakan server DEV atau QA ke dalam produksi dan Anda gagal memperbarui string koneksi. Untuk mengatasi masalah ini, validasi bahwa Anda tersambung ke server yang sesuai. Jika tidak, perbaik string koneksi. Jika ya, berikan akses masuk ke SQL Server Anda. Atau jika ini adalah akses pemberian masuk Windows secara langsung atau tambahkan ke grup lokal atau domain yang diizinkan untuk tersambung ke server database. Untuk informasi selengkapnya, lihat Membuat Login. |
Anda menggunakan Autentikasi SQL Server, tetapi kata sandi yang Anda tentukan untuk masuk SQL Server salah. | Periksa log kesalahan SQL untuk pesan seperti "Alasan: Kata sandi tidak cocok dengan log masuk yang disediakan" untuk mengonfirmasi penyebabnya. Untuk memperbaiki masalah ini, gunakan kata sandi yang benar di aplikasi Anda atau gunakan akun lain jika Anda tidak dapat mengingat kata sandi. Atau, bekerja samalah dengan administrator SQL Server Anda untuk mengatur ulang kata sandi untuk akun tersebut. Jika aplikasi adalah SQL Server Integration Services (SSIS), mungkin ada beberapa tingkat file Konfigurasi untuk pekerjaan tersebut, yang dapat mengambil alih pengaturan Pengelola Sambungan untuk paket. Jika aplikasi ditulis oleh perusahaan Anda dan string koneksi dihasilkan secara terprogram, libatkan tim pengembangan untuk menyelesaikan masalah. Sebagai solusi sementara, kode keras string koneksi dan pengujian. Gunakan file UDL atau skrip untuk membuktikan koneksi dimungkinkan dengan string koneksi yang dikodekan secara permanen. |
string koneksi memiliki sintaksis, nama server, atau kredensial pengguna yang salah. | Untuk mengatasinya, ikuti langkah-langkah berikut:
|
Tidak ada login | Periksa apakah SQL Server memperlihatkan pesan berikut:Logon Error: 18456, Severity: 14, State: 11. Logon Login failed for user 'CONTOSO\JohnDoe'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: ] Beberapa kesalahan milik akun Masuk Anonim. Ini terkait dengan masalah Kerberos. Ada entri manual yang buruk dalam file HOSTS, yaitu nama server yang salah diberikan. Masalah yang tersisa mungkin termasuk dalam kategori berikut:
|
Anda mencoba menyambungkan menggunakan autentikasi Windows tetapi masuk ke domain yang salah. | Verifikasi bahwa Anda masuk dengan benar ke domain yang benar. Pesan kesalahan biasanya menampilkan nama domain. |
Memeriksa izin database | Database tidak muncul secara offline di SQL Server Management Studio. Pengguna lain, misalnya DBA dapat terhubung ke DBA. Akun pengguna yang dimaksud harus diberikan akses eksplisit ke database atau ditambahkan ke peran SQL Server atau grup Windows lokal atau grup domain yang memiliki akses ke database. Untuk informasi selengkapnya, lihat MEMBUAT PENGGUNA, MENGUBAH PERAN, dan MENGUBAH PERAN SERVER |
Anda tidak menjalankan aplikasi Anda (misalnya, SSMS) sebagai administrator. | Jika Anda mencoba menyambungkan menggunakan kredensial administrator, mulai aplikasi Anda dengan menggunakan opsi Jalankan sebagai Administrator . Saat tersambung, tambahkan pengguna Windows Anda sebagai login individual. |
Login dihapus setelah migrasi ke pengguna database mandiri. | Jika Mesin Database mendukung database mandiri, konfirmasikan bahwa login tidak dihapus setelah migrasi ke pengguna database mandiri. Untuk informasi selengkapnya, lihat Autentikasi Database Terkandung: Pengenalan. |
Database default masuk offline atau tidak tersedia. | Tanyakan kepada administrator SQL Server Anda dan atasi masalah yang terkait dengan ketersediaan database. Jika login memiliki izin ke database lain di server dan Anda tidak perlu mengakses database default yang saat ini dikonfigurasi di aplikasi Anda, gunakan salah satu opsi berikut: - Minta administrator untuk mengubah database default untuk masuk menggunakan pernyataan ALTER LOGIN atau SSMS. - Secara eksplisit menentukan database yang berbeda dalam aplikasi Anda string koneksi. Atau jika Anda menggunakan SSMS beralih ke tab Properti Koneksi untuk menentukan database yang saat ini tersedia.Aplikasi seperti SSMS mungkin menampilkan pesan kesalahan seperti berikut ini: Cannot open user default database. Login failed. Login failed for user <user name>. (Microsoft SQL Server, Error: 4064) SQL Server Errorlog akan memiliki pesan kesalahan seperti berikut ini: Login failed for user '<user name>'. Reason: Failed to open the database '<dbname>' specified in the login properties [CLIENT: <ip address>] Untuk informasi selengkapnya, lihat MSSQLSERVER_4064. |
Database yang secara eksplisit ditentukan dalam string koneksi atau di SSMS salah dieja, offline, atau tidak tersedia. | - Perbaiki nama database di string koneksi. Perhatikan sensitivitas kasus jika menggunakan kolater sensitif huruf besar/kecil di server. - Jika nama database sudah benar, tanyakan kepada administrator SQL Server Anda dan atasi masalah yang terkait dengan ketersediaan database. Periksa apakah database offline, tidak dipulihkan, dan sebagainya. - Jika login telah dipetakan ke pengguna dengan izin ke database lain di server dan Anda tidak perlu mengakses database yang saat ini dikonfigurasi di aplikasi Anda, tentukan database lain di string koneksi Anda. Atau jika Anda tersambung dengan SQL Server Management Directory, gunakan tab Properti Koneksi untuk menentukan database yang saat ini tersedia. SQL Server Errorlog akan memiliki pesan kesalahan seperti berikut ini: Login failed for user <UserName>. Reason: Failed to open the explicitly specified database 'dbname'. [CLIENT: <ip address>] Catatan: Jika database default masuk tersedia, SQL Server memungkinkan koneksi berhasil. Untuk informasi selengkapnya, lihat MSSQLSERVER_4064. |
Pengguna tidak memiliki izin ke database yang diminta. | - Coba sambungkan sebagai pengguna lain yang memiliki hak sysadmin untuk melihat apakah konektivitas dapat dibuat. - Berikan akses masuk ke database dengan membuat pengguna yang sesuai (misalnya, CREATE USER [<UserName>] FOR LOGIN [UserName] ) |
Selain itu, periksa daftar ekstensif kode kesalahan di Pemecahan Masalah Kesalahan 18456.
Untuk bantuan pemecahan masalah selengkapnya, lihat Pemecahan Masalah Konektivitas Klien/Server SQL.
Gagal masuk untuk pengguna NT AUTHORITY\ANONYMOUS LOGON
Setidaknya ada empat skenario untuk masalah ini. Dalam tabel berikut, periksa setiap kemungkinan penyebab yang berlaku, dan gunakan resolusi yang sesuai: Lihat catatan di bawah tabel untuk penjelasan tentang istilah lompatan ganda.
Penyebab potensial | Resolusi yang disarankan |
---|---|
Anda mencoba meneruskan kredensial NT LAN Manager (NTLM) dari satu layanan ke layanan lain di komputer yang sama (misalnya: dari IIS ke SQL Server), tetapi kegagalan terjadi dalam proses. | Tambahkan entri registri DisableLoopbackCheck atau BackConnectionHostNames. |
Ada skenario double-hop (delegasi batasan) di beberapa komputer. Kesalahan dapat terjadi jika koneksi Kerberos gagal karena masalah Nama Prinsipal Layanan (SPN). | Jalankan SQLCheck di setiap SQL Server dan server web. Gunakan panduan pemecahan masalah: Masalah Delegasi Kredensial 0600 dan Masalah Delegasi Server Tertaut SQL Server 0650. |
Jika tidak ada lompatan ganda (delegasi batasan) yang terlibat, kemungkinan SPN duplikat ada, dan klien berjalan sebagai LocalSystem atau akun komputer lain yang mendapatkan kredensial NTLM alih-alih kredensial Kerberos. | Gunakan SQLCheck atau Setspn.exe untuk mendiagnosis dan memperbaiki masalah terkait SPN. Tinjau juga Gambaran Umum Kerberos Configuration Manager untuk SQL Server. |
Kebijakan Keamanan Lokal Windows mungkin telah dikonfigurasi untuk mencegah penggunaan akun komputer untuk permintaan autentikasi jarak jauh. | Navigasi ke Kebijakan>Keamanan Lokal Kebijakan>Keamanan Lokal Opsi>Keamanan Keamanan jaringan: Izinkan Sistem Lokal menggunakan identitas komputer untuk NTLM, pilih opsi Diaktifkan jika pengaturan dinonaktifkan, lalu pilih OK. Catatan: Sebagaimana dirinci pada tab Jelaskan , kebijakan ini diaktifkan di Windows 7 dan versi yang lebih baru secara default. |
Terjadinya masalah terputus-terputus saat menggunakan delegasi yang dibatasi dapat menunjukkan adanya tiket kedaluwarsa yang tidak dapat diperbarui oleh tingkat menengah. Ini adalah perilaku yang diharapkan dengan skenario server tertaut atau aplikasi apa pun yang mengadakan sesi masuk selama lebih dari 10 jam. | Ubah pengaturan delegasi pada server tingkat menengah Anda dari Percayai komputer ini untuk delegasi ke layanan tertentu saja - Gunakan Kerberos Hanya untuk Mempercayai komputer ini untuk delegasi ke layanan tertentu saja - Gunakan protokol apa pun. Untuk informasi selengkapnya, lihat LOGONIM ANONIM terputus-terputus dari lompatan ganda server tertaut SQL Server. |
NTLM Peer Login | Kesalahan ini terkait dengan protokol autentikasi NTLM yang digunakan oleh Microsoft Windows OS. Saat berkomunikasi antara komputer yang berada di stasiun kerja atau di domain yang tidak saling percaya, Anda dapat mengatur akun yang identik di kedua komputer dan menggunakan autentikasi peer NTLM NTLM Peer Login. Login hanya berfungsi jika akun pengguna dan kata sandi cocok di kedua komputer. |
Perlindungan loopback | Perlindungan loopback dirancang untuk melarang aplikasi memanggil layanan lain pada komputer yang sama. Anda dapat mengatur DisableLoopbackCheck kunci registri atau BackConnectionHostNames (pilihan) untuk mengizinkan ini. Untuk informasi selengkapnya, lihat Pesan kesalahan saat Anda mencoba mengakses server secara lokal dengan menggunakan FQDN atau alias CNAME-nya setelah Anda menginstal Windows Server 2003 Service Pack 1: Akses ditolak atau Tidak ada penyedia jaringan yang menerima jalur jaringan yang diberikan. |
Perlindungan Loopback Listener Always-On | Saat menyambungkan ke Pendengar Always-On dari simpul utama, koneksinya adalah NTLM. Ini akan melibatkan Pemeriksaan Loopback dan mengakibatkan kesalahan "Gagal masuk" yang menyatakan bahwa pengguna berasal dari domain yang tidak tepercaya. Untuk mengatasi kesalahan ini, ketik nama LISTENER NETBIOS dan nama yang sepenuhnya memenuhi syarat ke dalam BackConnectionHostNames kunci registri pada semua komputer di Grup Ketersediaan. Untuk informasi selengkapnya, lihat Pesan kesalahan saat Anda mencoba mengakses server secara lokal dengan menggunakan FQDN atau alias CNAME-nya setelah Anda menginstal Windows Server 2003 Service Pack 1: Akses ditolak atau Tidak ada penyedia jaringan yang menerima jalur jaringan yang diberikan. |
Tingkat Kompatibilitas LANMAN | Ini biasanya terjadi antara komputer lama (pra Windows 2008) dan komputer yang lebih baru. Atur tingkat kompatibilitas LANMAN ke 5 di semua komputer. Ini juga melarang NTLM v1. Anda juga dapat beralih ke Kerberos untuk menghindari masalah ini. |
Akun sensitif | Beberapa akun mungkin ditandai sebagai Sensitif di Direktori Aktif. Akun-akun ini tidak dapat didelegasikan ke layanan lain dalam skenario double-hop. |
Bukan target yang dibatasi | Jika delegasi yang dibatasi diaktifkan untuk akun layanan tertentu, Kerberos akan gagal jika SPN server target tidak ada dalam daftar target delegasi yang dibatasi. |
Per-Service-SID | Fitur ini membatasi koneksi lokal untuk menggunakan NTLM dan bukan Kerberos sebagai metode autentikasi. Layanan ini dapat membuat lompatan tunggal ke server lain menggunakan kredensial NTLM, tetapi tidak dapat didelegasikan lebih lanjut tanpa menggunakan delegasi yang dibatasi. |
NTLM dan delegasi yang dibatasi | Jika target adalah berbagi file, jenis delegasi akun layanan tingkat menengah harus Dibatasi-Apa pun dan bukan Constrained-Kerberos. |
Catatan
Double-hop biasanya melibatkan delegasi kredensial pengguna di beberapa komputer jarak jauh. Misalnya, asumsikan Anda memiliki instans SQL Server bernama SQL1 tempat Anda membuat server tertaut untuk SQL Server jarak jauh bernama SQL2. Dalam konfigurasi keamanan server tertaut, Anda memilih opsi Dibuat menggunakan konteks keamanan masuk saat ini. Saat menggunakan konfigurasi ini, jika Anda menjalankan kueri server tertaut di SQL1 dari komputer klien jarak jauh bernama Client1, kredensial Windows pertama-tama harus melompat dari Client1 ke SQL1 dan kemudian dari SQL1 ke SQL2 (oleh karena itu, itu disebut double-hop). Untuk informasi selengkapnya, lihat Memahami Kerberos Double Hop dan Ringkasan Delegasi yang Dibatasi Kerberos
Gagal masuk untuk pengguna (kosong)
Kesalahan ini terjadi ketika pengguna mencoba gagal untuk masuk. Kesalahan ini mungkin terjadi jika komputer Anda tidak tersambung ke jaringan. Misalnya, Anda mungkin menerima pesan kesalahan yang menyerupai pesan berikut:
Source: NETLOGON
Date: 8/12/2012 8:22:16 PM
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <computer name>
Description: This computer was not able to set up a secure session with a domain controller in domain due to the following: The remote procedure call was cancelled.
This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.
String kosong berarti bahwa SQL Server mencoba menyerahkan kredensial ke Layanan Subsistem Otoritas Keamanan Lokal (LSASS) tetapi tidak dapat karena beberapa masalah. Baik LSASS tidak tersedia, atau pengendali domain tidak dapat dihubungi.
Anda mungkin juga melihat kode kesalahan SSPI terkait berikut:
Jabat tangan SSPI gagal dengan kode kesalahan 0x80090311 saat membuat koneksi dengan keamanan terintegrasi; sambungan telah ditutup.
Jabat tangan SSPI gagal dengan kode kesalahan 0x80090304 saat membuat koneksi dengan keamanan terintegrasi; sambungan telah ditutup.
Kode kesalahan ini diterjemahkan sebagai berikut:
Kesalahan -2146893039 (0x80090311): Tidak ada otoritas yang dapat dihubungi untuk autentikasi. Kesalahan -2146893052 (0x80090304): Otoritas Keamanan Lokal tidak dapat dihubungi.
Untuk mengatasi kesalahan ini, Anda dapat mengambil DC offline yang menyinggung atau menggunakan NLTEST.EXE untuk beralih DC.
- Untuk mengkueri DC, jalankan NLTEST /SC_QUERY:CONTOSO
perintah .
- Untuk mengubah DC, jalankan NLTEST /SC_RESET:CONTOSO\DC03
perintah .
Jika Anda memerlukan bantuan lebih lanjut, hubungi tim Microsoft Active Directory.
Periksa log peristiwa pada klien dan server untuk pesan terkait jaringan atau terkait Direktori Aktif yang dicatat sekitar waktu kegagalan. Jika Anda menemukannya, bekerja samalah dengan administrator domain Anda untuk memperbaiki masalah tersebut.
Gagal masuk untuk pengguna '(null)'
Indikasi "null" dapat berarti bahwa LSASS tidak dapat mendekripsi token keamanan dengan menggunakan kredensial akun layanan SQL Server. Alasan utama untuk kondisi ini adalah bahwa SPN dikaitkan dengan akun yang salah.
Untuk memperbaiki masalah ini, ikuti langkah-langkah ini:
Gunakan SQLCheck atau Setspn.exe untuk mendiagnosis dan memperbaiki masalah terkait SPN.
Gunakan SQLCheck untuk memeriksa apakah akun Layanan SQL dipercaya untuk delegasi. Jika output menunjukkan bahwa akun tidak dipercaya untuk delegasi, bekerja samalah dengan administrator Direktori Aktif Anda untuk mengaktifkan delegasi untuk akun tersebut.
Catatan
SETSPN -X
dan -Q
merupakan perintah yang berguna untuk memeriksa SPN duplikat atau salah tempat.
Mendiagnosis dan memperbaiki masalah resolusi nama Sistem Nama Domain (DNS). Contohnya:
Alamat IP Ping dengan menggunakan skrip PowerShell:
ping -a <your_target_machine>
(gunakan-4
untuk IPv4 dan-6
IPv6 secara khusus)ping -a <your_remote_IPAddress>
Gunakan NSLookup untuk memasukkan nama komputer dan alamat IP lokal dan jarak jauh Anda beberapa kali.
Cari perbedaan dan ketidakcocokan dalam hasil yang dikembalikan. Akurasi konfigurasi DNS pada jaringan penting untuk koneksi SQL Server yang berhasil. Entri DNS yang salah dapat menyebabkan banyak masalah konektivitas nanti.
Pastikan firewall atau perangkat jaringan lain tidak memblokir klien agar tidak tersambung ke pengendali domain. SPN disimpan di Direktori Aktif. Jika klien tidak dapat berkomunikasi dengan direktori, koneksi tidak dapat berhasil.
Informasi kesalahan tambahan
Untuk meningkatkan keamanan, pesan kesalahan yang dikembalikan ke klien sengaja menyembunyikan sifat kesalahan autentikasi. Namun, dalam log kesalahan SQL Server, kesalahan yang sesuai berisi status kesalahan yang memetakan ke kondisi kegagalan autentikasi. Bandingkan status kesalahan dengan daftar berikut untuk menentukan alasan kegagalan masuk.
Provinsi | Deskripsi |
---|---|
1 | Informasi kesalahan tidak tersedia. Status ini biasanya berarti Anda tidak memiliki izin untuk menerima detail kesalahan. Hubungi administrator SQL Server Anda untuk informasi selengkapnya. |
2 | ID pengguna tidak valid. |
5 | ID pengguna tidak valid. |
6 | Upaya dilakukan untuk menggunakan nama masuk Windows dengan Autentikasi SQL Server. |
7 | Login dinonaktifkan, dan kata sandi salah. |
8 | Kata sandi salah. |
9 | Kata sandi tidak valid. |
11 | Login valid, tetapi akses server gagal. Salah satu kemungkinan penyebab kesalahan ini adalah ketika pengguna Windows memiliki akses ke SQL Server sebagai anggota grup administrator lokal, tetapi Windows tidak memberikan kredensial administrator. Untuk menyambungkan, mulai program penyambungan menggunakan opsi Jalankan sebagai administrator , lalu tambahkan pengguna Windows ke SQL Server sebagai login tertentu. |
12 | Masuk adalah login yang valid, tetapi akses server gagal. |
18 | Kata sandi harus diubah. |
38, 46 | Tidak dapat menemukan database yang diminta oleh pengguna. |
58 | Ketika SQL Server diatur untuk menggunakan Autentikasi Windows saja, dan klien mencoba masuk menggunakan autentikasi SQL. Penyebab lain adalah ketika SID tidak cocok. |
102 - 111 | Kegagalan Azure Active Directory. |
122 - 124 | Kegagalan karena nama pengguna atau kata sandi kosong. |
126 | Database yang diminta oleh pengguna tidak ada. |
132 - 133 | Kegagalan Azure Active Directory. |
Status kesalahan lain ada dan menandakan kesalahan pemrosesan internal yang tidak terduga.
Kemungkinan penyebab yang lebih langka
Alasan kesalahan Upaya untuk masuk menggunakan autentikasi SQL gagal. Server hanya dikonfigurasi untuk autentikasi Windows. dapat dikembalikan dalam situasi berikut.
Ketika server dikonfigurasi untuk autentikasi mode campuran, dan koneksi ODBC menggunakan protokol TCP, dan koneksi tidak secara eksplisit menentukan bahwa koneksi harus menggunakan koneksi tepercaya.
Ketika SQL Server dikonfigurasi untuk autentikasi mode campuran, dan koneksi ODBC menggunakan pipa bernama, dan kredensial yang digunakan klien untuk membuka pipa bernama digunakan untuk secara otomatis meniru pengguna, dan string koneksi tidak secara eksplisit menentukan penggunaan autentikasi tepercaya.
Untuk mengatasi masalah ini, sertakan TRUSTED_CONNECTION = TRUE
dalam string koneksi.
Contoh
Dalam contoh ini, status kesalahan autentikasi adalah 8. Ini menunjukkan bahwa kata sandi salah.
Tanggal | Sumber | Pesan |
---|---|---|
2007-12-05 20:12:56.34 | Masuk | Kesalahan: 18456, Tingkat Keparahan: 14, Status: 8. |
2007-12-05 20:12:56.34 | Masuk | Login gagal untuk pengguna '<user_name>'. [KLIEN: <alamat> ip] |
Catatan
Ketika SQL Server diinstal menggunakan mode Autentikasi Windows dan kemudian diubah ke mode SQL Server dan Autentikasi Windows, login sa awalnya dinonaktifkan. Ini menyebabkan kesalahan status 7: "Gagal masuk untuk pengguna 'sa'." Untuk mengaktifkan login sa , lihat Mengubah Mode Autentikasi Server.