Đăng nhập thất bại cho người dùng - Lỗi 18456 - Mức độ nghiêm trọng 14, Trạng thái 38


23

Thông báo mà SQL Server Log File Viewer hiển thị:

Login failed for user [User]
Error: 18456, Severity: 14, State 38

Nó thực sự có nghĩa là gì:

Failed to open the explicitly specified database

Câu hỏi của tôi:

Có một danh sách ở đâu đó của tất cả các biến thể của 18456 lỗi (Đăng nhập thất bại), cho mỗi kết hợp mức độ nghiêm trọng và trạng thái, với văn bản mô tả hữu ích?

Tôi đã có một Google nhưng không thể tìm thấy bất cứ điều gì ngoài các kết hợp cụ thể.

Câu trả lời:


25

Mã nhà nước và ý nghĩa của chúng.

1      'Account is locked out'
2      'User id is not valid'
3-4    'Undocumented'
5      'User id is not valid'
6      'Undocumented'
7      'The login being used is disabled'
8      'Incorrect password'
9      'Invalid password'
10     'Related to a SQL login being bound to Windows domain password policy enforcement.
        See KB925744.'
11-12  'Login valid but server access failed'
16     'Login valid, but not permissioned to use the target database'
18     'Password expired'
27     'Initial database could not be found'
38     'Login valid but database unavailable (or login not permissioned)'

Thông tin chi tiết có sẵn trong blog của Aaron Bertrand .


@PeteOakly bạn đang đi đúng hướng ở đây cho trạng thái 38. Xem bài đăng bên dưới về cơ sở dữ liệu bị thiếu là một trong những lý do cho trạng thái 38.
John Dyer

4

Tôi đã có cùng một lỗi với mã trạng thái 38 gây ra bởi một lỗi đánh máy tên của cơ sở dữ liệu trong chuỗi kết nối.


2

Đây là những gì tôi tìm thấy khi tôi giải quyết lỗi này: Tôi đã tạo một số kết nối SQL bằng cách sử dụng đăng nhập windows và không phải tên người dùng và mật khẩu. Không thực sự chắc chắn những gì hoặc làm thế nào nó đã xảy ra nhưng nó đã làm. Tôi đã xóa chúng và sau đó xây dựng lại các mô hình thực thể của tôi. Tôi đã sử dụng một chuỗi kết nối khác mà tôi biết là tốt và tất cả là niềm vui. Khóa là Thông tin bảo mật liên tục = True, sẽ không hoạt động trên mạng hoặc trang web bên ngoài


2

Tôi đã có 18456 với nhà nước 38 là tốt. Hóa ra chuỗi kết nối có 'bảo mật tích hợp = true' không phải là điều tôi muốn. Chuỗi kết nối chứa userid và mật khẩu sẽ được sử dụng. Khi tôi thay đổi cài đặt thành false, tất cả đều ổn.


2

Tôi gặp lỗi này khi cố gắng đăng nhập vào SQL Server với nhiều phiên bản. Chuỗi kết nối không đặt tên một thể hiện. Khi tôi đặt tên phiên bản (SERVERNAME \ INSTANCENAME), tôi đã quản lý để kết nối với máy chủ.


2

@Pete Oakly đang đi đúng hướng với danh sách mã trạng thái. Cụ thể, đây là mã chúng ta đều quan tâm:

38 'Đăng nhập hợp lệ nhưng cơ sở dữ liệu không có sẵn (hoặc đăng nhập không được phép)'

Vấn đề của tôi bắt đầu trong nhật ký lỗi C #:

Ngoại lệ | PublishException | 000161 | 10/29/2018 | 11: 06: 40.210 | 16284 | InternalException | Không thể mở cơ sở dữ liệu "InterestingDataBaseName" được yêu cầu bởi đăng nhập. Việc đăng nhập thất bại. Đăng nhập thất bại cho người dùng 'CORP \ anyuser'.

Mắt tôi tập trung vào phần "Đăng nhập thất bại" . Người dùng của tôi đã sa vào máy chủ DB này, làm thế nào để đăng nhập có thể thất bại?

Tôi tình cờ đọc được bài đăng này bởi bộ ba lập trình viên đã có câu trả lời: https://justaprogrammer.net/2012/12/09/a-mislead-sql-error-message-error-18456-severity-14-state-38 /

Đây không phải là lần đăng nhập thất bại, đó là cơ sở dữ liệu mà tôi đang cố truy cập. Nó không tồn tại!

Chơi lô tô! Tôi đã thay đổi tên cơ sở dữ liệu vì lý do khác và không cập nhật tệp cấu hình. Đã sửa tên DB và mọi thứ lại hoạt động như bùa mê.


1

Trong trường hợp của chúng tôi trong Trình quản lý cấu hình máy chủ SQL | Cấu hình mạng máy chủ SQL | TCP / IP | IP | Cổng TCP KHÔNG được đặt.

Nếu không chúng tôi có thể thiết lập kết nối ODBC và thậm chí sử dụng kết nối SQL Management Studio từ xa và đăng nhập với người dùng. Tuy nhiên, mỗi lần chúng tôi truy cập url của ứng dụng Tomcat, nó đã khởi chạy kết nối jdbc, sau đó chúng tôi phát hiện ra trong SQL Server Đăng nhập lỗi: Đăng nhập thất bại cho người dùng 'xxxx': lý do Không thể mở cơ sở dữ liệu được xác định rõ ràng, lỗi 18456, Severity 14 , Bang 38

Đây là một bản tóm tắt của chuỗi kết nối jdbc

"jdbc:sqlserver://10.10.10.10:1433;databaseName=zzzzzzz" username="yyyyyy" password="xxxxxx" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" defaultAutoCommit="true"/>
<Resource name="jdbc/application" 

Điều này cũng có nghĩa trong Cấu hình mạng máy chủ SQL | Giao thức cho <tên dụ> | Các ống được đặt tên phải được ENABLED và Tên ống \\.\pipe\MSSQL$<instance name>\sql\query phải được đặt chính xác.


1

Vâng, đây là lỗi cơ sở dữ liệu liên quan. Tôi đang thêm giải pháp của mình trong câu hỏi này bởi vì, điều rất quan trọng là phải hiểu vai trò của DBA. Vì vậy, có những gợi ý của tôi:

  • Chuyển đến Trình quản lý máy chủ
  • Chọn Công cụ và sau đó Quản lý Máy tính
  • Kiểm tra người dùng và nhóm địa phương
  • Kiểm tra tên quản trị viên với mô tả 'Tài khoản tích hợp để quản trị máy tính / tên miền'

Bây giờ, đăng nhập với tên người dùng đó và bạn có thể cấp quyền truy cập cho người dùng. Làm như vậy:

Đi đến Bảo mật , nhấp chuột phải vào Đăng nhập và chọn Đăng nhập mới

Trong cửa sổ đăng nhập, bạn có thể nhập tên người dùng hoặc tìm kiếm nó. Chọn người dùng từ danh sách và bấm OKOK lần nữa.

Trên cùng một cửa sổ đăng nhập, nhấp vào Vai trò Máy chủ và cấp quyền truy cập cho người dùng đã chọn như: sysadmin, serveradmin, decreator, v.v. bấm OK .

Nếu bạn muốn cấp quyền truy cập vào cơ sở dữ liệu cá nhân, hãy truy cập Ánh xạ người dùng và cung cấp quyền truy cập theo yêu cầu của bạn.

Kiểm tra trạng thái của cơ sở dữ liệu: Quyền: Cấp đăng nhập: Đã bật

Nhấn vào OK


2
Đây có thể là một câu trả lời khá hay nếu bạn có thể tập trung vào khả năng thiếu mối quan hệ Đăng nhập máy chủ SQL với cơ sở dữ liệu hoặc khả năng cơ sở dữ liệu mặc định của Đăng nhập SQL Server không còn khả dụng. Hiện tại câu trả lời của bạn chỉ là một đề xuất tổng quát về cách tạo tài khoản. Tôi không chắc phần đầu tiên trong câu trả lời của bạn sẽ giúp giải quyết vấn đề của OP như thế nào. Bạn có thể giải thích phần đó?
John aka hot2use
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.