Đăng nhập vào Microsoft SQL Server Lỗi: 18456


295

Tôi gặp lỗi này khi cố gắng kết nối với Máy chủ SQL.

Lỗi máy chủ Microsoft SQL: 18456

Ai đó có thể cho tôi biết mã lỗi có nghĩa là gì?


6
Một tìm kiếm chữ thảo dường như chỉ ra rằng mã lỗi là lỗi đăng nhập và thường đi kèm với thông tin chi tiết hơn.
David

Và thông tin chi tiết hơn nên có trong nhật ký lỗi máy chủ sql. Con số tự nó không cố ý cho bạn biết nhiều, vì vậy những kẻ bẻ khóa không thể sử dụng nó cho manh mối về việc những nỗ lực của họ bị sai.
Tony Hopkinson

thông tin hữu ích được tìm thấy ở đây
sairfan

1
Tôi vừa phảirun as administrator
Jacksonkr

chỉ cần kiểm tra giải pháp này: stackoverflow.com/questions/41386538/ từ
Akash Singh Sengar

Câu trả lời:


706

Nếu bạn đang cố gắng kết nối bằng "Xác thực máy chủ SQL" thì bạn có thể muốn sửa đổi xác thực máy chủ của mình:

Trong Microsoft SQL Server Management Studio trong trình thám hiểm đối tượng:

  1. Nhấp chuột phải vào máy chủ và nhấp Properties

  2. Tới Securitytrang

  3. Dưới Server authenticationchọn SQL Server and Windows Authentication modenút radio

  4. Nhấp chuột OK

  5. Khởi động lại dịch vụ SQL


32
Cảm ơn. Thật xấu hổ khi không có thông báo cảnh báo khi bạn cố gắng thêm người dùng.
JohnnyBizzle 4/2/2015

12
Chính xác ý bạn là gì "Nhấp chuột phải vào máy chủ và nhấp vào thuộc tính" đây là đâu?
emcor 6/2/2015

9
Anh ta có nghĩa là nút trên cùng trong Object Explorer của bạn - hình trụ màu vàng có nút phát
JGilmartin

21
Đây là một vấn đề rất phổ biến mọi người chạy vào. Thực tế là bạn có thể tạo thông tin đăng nhập SQL Server vào nội dung trái tim của bạn mà không nhận ra rằng cài đặt đơn giản này bị tắt là IMO khá khó hiểu. Tôi muốn giới thiệu đây là câu trả lời chính xác.

7
@JGilmartin, Làm thế nào chính xác bạn sẽ có thể kết nối với máy chủ trong Object Explorer khi bạn gặp Lỗi 18456 có nghĩa là bạn không thể kết nối ??
Shai Alon

69

Kiểm tra bài viết blog này từ nhóm nền tảng dữ liệu.

http://bloss.msdn.com/b/sql_prot Protocol / archive / 2006/02/5 / 536201.aspx

Bạn thực sự cần phải xem phần trạng thái của thông báo lỗi để tìm nguyên nhân gốc rễ của vấn đề.

2, 5 = Invalid userid
6 = Attempt to use a Windows login name with SQL Authentication
7 = Login disabled and password mismatch
8 = Password mismatch
9 = Invalid password
11, 12 = Valid login but server access failure
13 = SQL Server service paused
18 = Change password required

Sau đó, Google làm thế nào để khắc phục vấn đề.


42
Không tự mình lấy sừng, nhưng tôi đã biên soạn thêm rất nhiều thông tin ở đây: sqlblog.com/bloss/aaron_bertrand/archive/2011/01/14/ trộm
Aaron Bertrand

Bạn luôn thổi còi cho bạn ... Cảm ơn bạn đã bỏ phiếu? Nhưng danh sách của bạn dường như được hoàn thiện hơn! Tôi nghĩ rằng hầu hết mọi người không biết cách sử dụng Google.
CRAFTY DBA

1
Tôi đã cố gắng bỏ phiếu, tuy nhiên tôi rất đau khổ vì trả lời các câu hỏi mà Google có thể trả lời chỉ khuyến khích mọi người tiếp tục hỏi ở đây thay vì tìm kiếm ...
Aaron Bertrand

13
99% câu hỏi ở đây có lẽ có thể được Google trả lời tuy nhiên một câu hỏi và câu trả lời đơn giản giúp tiết kiệm đáng kể thời gian tìm kiếm và đổ vào các bài viết / blog thường không cần thiết, và vì vậy tôi đã bỏ phiếu!
Chris Nevill

12
ĐÂY là nơi tôi tìm thấy câu trả lời khi tôi sử dụng google (google tìm kiếm SO tốt hơn so với tìm kiếm SO ...)
Cos Callis

27

Trước khi mở, nhấp chuột phải và chọn 'Chạy với tư cách Quản trị viên'. Điều này giải quyết các vấn đề đối với tôi.


1
đây là bản sửa lỗi cho tôi Tôi đã có State: 1trong thông báo lỗi.
GraehamF

@Gsic Bạn là một vị cứu tinh thực sự. Tôi đã vật lộn hơn một ngày và giải pháp của bạn đã giải quyết nó. Cảm ơn
Karthik

Trước khi mở cái gì ??
Mike

11

trước tiên hãy xem chi tiết về lỗi nếu "trạng thái" là "1" Đảm bảo cơ sở dữ liệu được đặt cho cả xác thực SQL và Windows trong máy chủ SQL / Thuộc tính / Bảo mật.

cho nhà nước khác xem các câu trả lời trên ....


1
OMG cảm ơn bạn! Không có thông tin đăng nhập nào của tôi hoạt động, sau đó tôi tình cờ thấy câu trả lời này và thấy rằng bằng cách nào đó, phiên bản SQL Express của tôi đã thay đổi từ "Xác thực SQL và Windows" thành "Xác thực Windows". Thay đổi nó trở lại và tất cả các công trình.
Ian Kemp

1
Ngoài ra, việc đóng SSMS là không đủ, cần phải khởi động lại dịch vụ SqlServer để thay đổi có hiệu lực.
Ravid Goldenberg

10

Tôi đã phải đối mặt với vấn đề này.

Hãy nhìn vào hình ảnh đính kèm,

Bước 1: Chuyển đến thuộc tính máy chủ

Bước 2: Chuyển đến Bảo mật

Bước 3: Thay đổi xác thực máy chủ dưới dạng máy chủ SQL và chế độ WindowsAuthenication

và khởi động lại máy chủ Sql của bạn.

nhập mô tả hình ảnh ở đây


9
  1. Kiểm tra xem xác thực chế độ hỗn hợp có được bật trong máy chủ của bạn-> thuộc tính không
  2. Sau đó tạo một đăng nhập trong máy chủ-> bảo mật
  3. tạo người dùng để đăng nhập vào cơ sở dữ liệu của bạn
  4. Sau đó khởi động lại máy chủ của bạn bằng cách nhấp chuột phải vào thể hiện và chọn khởi động lại

5

Chỉ xảy ra với tôi, và hóa ra là khác với tất cả các trường hợp khác được liệt kê ở đây.

Tôi tình cờ có hai máy chủ ảo được lưu trữ trong cùng một cụm, mỗi máy chủ có địa chỉ IP riêng. Máy chủ đã cấu hình một trong các máy chủ là Máy chủ SQL và máy chủ còn lại là Máy chủ Web. Tuy nhiên, SQL Server được cài đặt và chạy trên cả hai. Máy chủ đã quên đề cập đến máy chủ nào là SQL và Web nào, vì vậy tôi chỉ giả sử đầu tiên là Web, thứ hai là SQL.

Khi tôi kết nối với SQL Server (điều tôi nghĩ là) và cố gắng kết nối qua SSMS, chọn Xác thực Windows, tôi đã gặp lỗi được đề cập trong câu hỏi này. Sau khi nhổ nhiều sợi tóc, tôi đã xem qua tất cả các cài đặt, bao gồm Cấu hình mạng máy chủ SQL, Giao thức cho MSSQLSERVER:

ảnh chụp màn hình cấu hình TCP / IP

Nhấp đúp vào TCP / IP đã cho tôi điều này:

Thuộc tính TCP / IP, hiển thị địa chỉ IP sai

Địa chỉ IP là của máy chủ ảo khác! Điều này cuối cùng đã khiến tôi nhận ra tôi chỉ đơn giản là nhầm lẫn giữa các máy chủ và tất cả đều hoạt động tốt trên máy chủ thứ hai.


4

Nếu bạn thay đổi thông tin đăng nhập người dùng hoặc thêm người dùng đăng nhập mới thì sau khi bạn cần đăng nhập thì bạn sẽ phải khởi động lại Dịch vụ máy chủ SQL. cho rằng

ĐI đến -> Dịch vụ hàng màu xám

Sau đó, đi đến SQL Server (MSSQLSERVER) và dừng lại và bắt đầu lại

Bây giờ hãy thử đăng nhập, tôi hy vọng bạn có thể.

Cảm ơn


3

18456 Danh sách trạng thái lỗi

MÔ TẢ NHÀ NƯỚC LRI

  • Trạng thái 2 và Trạng thái 5 Người dùng không hợp lệ
  • Trạng thái 6 Cố gắng sử dụng tên đăng nhập Windows với Xác thực SQL
  • Trạng thái 7 Đăng nhập bị vô hiệu hóa và mật khẩu không khớp
  • Trạng thái 8 không khớp mật khẩu
  • Trạng thái 9 Mật khẩu không hợp lệ
  • Trạng thái 11 và Trạng thái 12 Đăng nhập hợp lệ nhưng lỗi truy cập máy chủ
  • Trạng thái 13 Dịch vụ SQL Server bị tạm dừng
  • Trạng thái 18 Thay đổi mật khẩu yêu cầu

Nguyên nhân tiềm ẩn Dưới đây là danh sách các lý do và một số giải thích ngắn gọn phải làm gì:

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 thường xảy ra lỗi 18456 do máy chủ có thể được đặt ở chế độ Xác thực Windows (chỉ).

Cách khắc phục ? Kiểm tra trang SQL Server và Windows xác thực trang này.

ID người dùng 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à ID người dùng 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à một 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 nhau (Điển hình 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à một lỗi đánh máy. Hãy nhớ rằng tên người dùng này có thể có mật khẩu khác nhau trên các máy chủ khác nhau.

lỗi ít phổ biến hơn: ID người dùng có thể bị vô hiệu hóa 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ể là một vài lý do khác. Nếu bạn biết bất kỳ người khác cho tôi biết.

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ế để bảo vệ hệ thống, theo 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 Hiểu thông báo lỗi "đăng nhập thất bại" (Lỗi 18456) trong SQL Server 2005

Mong rằng sẽ giúp


2

Nhấp chuột phải vào Người dùng, đi đến thuộc tính, thay đổi cơ sở dữ liệu mặc định thành chủ Đây là bản in màn hình của hình ảnh hiển thị những gì bạn phải kiểm tra nếu bạn có lỗi 19456. Đôi khi, nó mặc định là cơ sở dữ liệu mà người dùng không có sự cho phép


2

Đầu tiên, vào thanh khởi động, sau đó tìm kiếm các dịch vụ cục bộ, sau đó bấm vào "xem các dịch vụ cục bộ" Sau đó, nó sẽ mở cửa sổ dịch vụ, sau đó vào SQL Server (MSSQLSERVER) nhấp chuột phải vào nó và nhấp vào dừng và sau đó nhấp chuột phải vào nó và nhấp vào bắt đầu. Bây giờ bạn có thể đăng nhập và đặt tên người dùng của mình là 'sa' và mật khẩu là mật khẩu giành được của bạn.



1

Vui lòng kiểm tra xem bạn có kết nối với mạng không nếu đây là PC thành viên miền. Ngoài ra, hãy chắc chắn rằng bạn không ở trên PC gia đình kép vì các tuyến của bạn có thể không chính xác do số liệu mạng. Tôi gặp vấn đề này khi tôi không thể kết nối với miền xác thực các cửa sổ SQL đã chuyển sang tài khoản PC cục bộ nhưng đã đăng ký nó dưới dạng xác thực SQL. Khi tôi tắt bộ điều hợp không dây và khởi động lại, tích hợp Windows sẽ quay trở lại tài khoản miền và được xác thực tốt. Tôi đã thiết lập chế độ Hỗn hợp như bạn đã làm, vì vậy các bài viết trước không áp dụng.


1

Đối với tôi, đó là đăng nhập sai và mật khẩu.


0

Tôi tin rằng điều này có thể xảy ra nếu bạn đang cố gắng đăng nhập với người dùng được xác định trong Active Directory, nhưng thử sử dụng "Xác thực máy chủ SQL" trong màn hình đăng nhập. Tôi không biết cách chỉ định người dùng khác với Xác thực NTLM / Windows: Khi tôi nhấp vào menu thả xuống Xác thực Windows, tên người dùng và mật khẩu sẽ bị xóa và tôi chỉ có thể đăng nhập như chính mình.


0

Trong trường hợp của tôi, nhiều lần thử sai đã khóa tài khoản. Để làm điều đó tôi đã thử chạy truy vấn bên dưới và nó đã hoạt động: ALTER LOGIN VỚI PASSWORD = UNLOCK Và đảm bảo đặt tùy chọn "Thực thi bảo mật mật khẩu" cho người dùng cụ thể được bỏ chọn bởi nhấp chuột phải vào Sql Server -> Thuộc tính.


0

Khắc phục sự cố kết nối máy chủ SQL

Trong trường hợp bạn không thể kết nối với Xác thực SQL và bạn đã thử các giải pháp khác.

Bạn có thể thử như sau:

Kiểm tra kết nối

  • Vô hiệu hóa tường lửa.
  • Chạy PortQry vào 1434 và kiểm tra câu trả lời.

Kiểm tra nhà nước

  • Hãy thử kết nối với SSMS hoặc sqlcmd và kiểm tra tin nhắn.
  • Trạng thái 1 hiếm khi được ghi lại nhưng điều đó chỉ có nghĩa là bạn không có quyền biết trạng thái thực sự.
  • Nhìn vào tệp nhật ký trong thư mục của máy chủ SQL để biết trạng thái là gì.

Nhà nước 5

Gì ? đăng nhập của tôi không tồn tại? Nó ở ngay đó, tôi có thể thấy nó trong SSMS. Làm thế nào nó có thể được?

Giải thích có khả năng nhất là nhiều khả năng là đúng.

Trạng thái đăng nhập

  • Phá hủy, tái tạo nó, kích hoạt nó.
  • đặt lại mật khẩu

Hoặc là...

"Bạn không nhìn đúng chỗ" hoặc "những gì bạn thấy không phải là những gì bạn nghĩ".

Xung đột cục bộ DB và SQLEXPRESS

Nếu bạn kết nối với SSMS với Windows authentication, và ví dụ của bạn được đặt tên SQLEXPRESS, bạn có thể nhìn vào các LocalDbkhông phải là máy chủ đúng . Vì vậy, bạn chỉ cần tạo đăng nhập của bạn trên LocalDb.

Khi bạn kết nối thông qua xác thực Máy chủ SQL với SSMS, nó sẽ cố gắng kết nối với máy chủ thực sự SQLEXPRESS nơi đăng nhập yêu quý của bạn chưa tồn tại.

Lưu ý bổ sung: Kiểm tra trong tab tham số kết nối nếu bạn không quên một chuỗi kết nối lạ ở đó.


0

Tôi đã phải đối mặt với cùng một vấn đề. Bạn cần bật Xác thực chế độ hỗn hợp trước. Để biết thêm chi tiết Cách bật Xác thực chế độ hỗn hợp


Mặc dù liên kết có thể có câu trả lời, vui lòng chỉnh sửa câu trả lời của bạn và cung cấp thêm chi tiết hoặc bạn có nguy cơ bỏ phiếu tiêu cực
Tae

0

Một giải pháp làm việc cho tôi. serever->security->logins->new logins->General->tạo tên người dùng của bạn làm tên đăng nhập, nhấp vào xác thực máy chủ sql thêm mật khẩu

bỏ chọn ba hộp kiểm xác minh mật khẩu. Điều này sẽ làm việc.

Remeber để thay đổi thuộc tính máy chủ -> Bảo mật từ Server authenticationđếnSQL Server and Windows Authentication mode


0

bạn có thể làm trong linux cho mssql thay đổi mật khẩu cho tài khoản sa

thiết lập sudo / opt / mssql / bin / mssql-conf

The license terms for this product can be downloaded from
 http://go.microsoft.com/fwlink/?LinkId=746388 Jump Jump
and found in /usr/share/doc/mssql-server/LICENSE.TXT.
Do you accept the license terms? [Yes/No]:yes
  Setting up Microsoft SQL Server
Enter the new SQL Server system administrator password:  --Enter strong password
Confirm the new SQL Server system administrator password: --Enter strong password
 starting Microsoft SQL Server...
 Enabling Microsoft SQL Server to run at boot...
Setup completed successfully.

0

Tôi đã gặp lỗi này sau khi tạo một người dùng sysadmin mới trong trường hợp SQL của tôi. Người dùng quản trị viên của tôi đã được tạo trong một tên miền cụ thể MyOrganization / useradmin

Sử dụng useradmin trên môi trường bị ngắt kết nối cho phép bạn tạo người dùng khác bằng xác thực Máy chủ SQL, nhưng ngay khi bạn cố gắng đăng nhập, bạn nhận được

Lỗi máy chủ Microsoft SQL: 18456

Để khắc phục sự cố, hãy thử kết nối lại với mạng Tổ chức của bạn và tạo người dùng trong khi bạn được kết nối và sau đó bạn có thể bị ngắt kết nối và sẽ hoạt động.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.