Nếu máy chủ gặp lỗi ngăn không cho đăng nhập thành công, máy khách sẽ hiển thị thông báo lỗi sau.
Msg 18456, Level 14, State 1, Server <server name>, Line 1
Login failed for user '<user name>'
- Điều này thường có nghĩa là yêu cầu kết nối của bạn đã được nhận thành công theo tên máy chủ mà bạn đã chỉ định nhưng máy chủ không thể cấp cho bạn quyền truy cập vì một số lý do và gây ra lỗi:18456.
- EventID này đôi khi cũng cung cấp trạng thái 1, điều này thực sự không hữu ích vì lý do bảo mật, bất kỳ lỗi nào cũng được chuyển đổi thành trạng thái 1 trừ khi bạn có thể kiểm tra việc ghi nhật ký trên máy chủ.
- Microsoft không cung cấp các hộp thông báo rất hữu ích, vì vậy dưới đây là một số giải thích tại sao bạn gặp lỗi.
UserID không hợp lệ: SQL Server không thể tìm thấy UserID được chỉ định trên máy chủ mà bạn đang cố lấy. Nguyên nhân phổ biến nhất là do userID này chưa được cấp quyền truy cập trên máy chủ nhưng đây cũng có thể là lỗi đánh máy đơn giản hoặc bạn vô tình đang cố gắng kết nối với máy chủ khác (Thông thường nếu bạn sử dụng nhiều máy chủ)
Mật khẩu không hợp lệ: Mật khẩu sai hoặc chỉ là lỗi đánh máy. Hãy nhớ rằng tên người dùng này có thể có các mật khẩu khác nhau trên các máy chủ khác nhau.
các lỗi ít phổ biến hơn: UserID có thể bị tắt trên máy chủ. Đăng nhập Windows đã được cung cấp cho Xác thực SQL (thay đổi thành Xác thực Windows. Nếu bạn sử dụng SSMS, bạn có thể phải chạy với tư cách người dùng khác để sử dụng tùy chọn này). Mật khẩu có thể đã hết hạn và có thể do một số lý do khác….
18456 giải thích trạng thái 1: Thông thường Microsoft SQL Server sẽ cung cấp cho bạn trạng thái lỗi 1, điều này thực sự không có ý nghĩa gì ngoài việc bạn có lỗi 18456. Trạng thái 1 được sử dụng để ẩn trạng thái thực tế nhằm bảo vệ hệ thống, điều này đối với tôi có ý nghĩa. Dưới đây là danh sách với tất cả các trạng thái khác nhau và để biết thêm thông tin về việc truy xuất các trạng thái chính xác, hãy truy cập Tìm hiểu thông báo lỗi "đăng nhập không thành công" (Lỗi 18456) trong SQL Server 2005
Xác thực SQL không được bật: Nếu bạn sử dụng Đăng nhập SQL lần đầu tiên trên phiên bản SQL Server, lỗi 18456 rất thường xuyên xảy ra vì Xác thực Windows (chỉ) được đặt trong thuộc tính Máy chủ (phần bảo mật).
Để Truy cập Thuộc tính Máy chủ, - Mở SQL Server Management Studio, đi tới ngăn Trình khám phá đối tượng (sử dụng chế độ xem nếu bạn không thể nhìn thấy nó) .- Sử dụng nút kết nối để kết nối với công cụ cơ sở dữ liệu cho máy chủ của bạn. Sau khi kết nối, bạn sẽ thấy nó trong đối tượng explore .- Nhấp chuột phải vào máy chủ và nhấp vào thuộc tính. Cửa sổ Thuộc tính Máy chủ sẽ xuất hiện.
Xem ảnh chụp màn hình bên dưới có thể khiến đăng nhập SQL không thành công
Bạn nên đặt Xác thực máy chủ thành Xác thực Windows Server SQL
Để giải quyết lỗi này, hãy làm theo các bước bên dưới trên máy tính có SQL Server 2005.
- Tạo người dùng mới với đặc quyền Quản trị viên với cùng tên người dùng và mật khẩu của SQL Server 2008 trong hệ điều hành.
- Trên cơ sở dữ liệu SQL Server, tạo người dùng mới bằng cách mở rộng DatabaseNode>> Bảo mật>> Đăng nhập> > - Tạo Người dùng Mới và thêm người dùng mới này bằng nút radio Xác thực Windows được chọn. - Chỉ có thể thêm người dùng này bằng Xác thực Windows đã chọn, đó là Đăng nhập người dùng của hệ điều hành.
- Sau khi hoàn tất hai bước trên khi được kết nối từ SQL Server 2008 đến SQL Server 2005 bằng Xác thực Windows, nó sẽ kết nối thành công.
Làm thế nào để khắc phục? Xem video liên kết này trang Chế độ xác thực máy chủ SQL và Windows.