SQL Server에 로그인 할 수 없음 + SQL Server 인증 + 오류 : 18456


121

내 localhost \ sql2008 서버에 로그인 계정을 만들었습니다 (예 : User123).

데이터베이스에 매핑 됨 (기본값)

SQL Server의 인증 모드가 둘 다 (Windows 및 SQL)로 설정 됨

그러나 다음 메시지와 함께 SQL Server 로그인이 실패합니다 (User123의 경우).

참고 : 사용자 이름 / 암호가 올바르게 입력되었는지 여러 번 확인했습니다.

오류 정보:

사용자 'User123'(Net.SqlClient 데이터 공급자)에 대한 로그인 실패

서버 이름 : localhost \ sql2008 오류 번호 : 18456 심각도 : 14 상태 : 1 줄 번호 : 65536

이것에 대한 도움이 필요합니다.


1
사용자에 대해 SqlServer 관리 콘솔을 통해 SQL 및 Windows 인증 액세스를 테스트하고 위 계정으로 액세스 할 수 있는지 확인합니다. 어떤 데이터 공급자와 연결 문자열을 사용하고 있습니까?
Joe Pitz

1
SSMS에 로그인하려고하는데 위의 오류가 발생합니다.
Sreedhar

1
관리자 계정으로 로그인 할 수 있습니까?
Joe Pitz

관리자로 로그인하고 이벤트 로그를 확인하십시오. 오류의 원인이 여기에 나열되어야합니다. 관리 폴더 아래를보십시오
Joe Pitz

답변:


49

기본적으로 로그인 실패 오류 메시지는 아무것도 아니지만 로그인 자격 증명이 일치하지 않아 서버에서 클라이언트 사용자 연결을 거부했습니다. 확인해야 할 첫 번째 작업은 해당 사용자가 해당 SQL Server 인스턴스 및 관련 데이터베이스에 대한 관련 권한을 가지고 있는지 확인하는 것입니다. 분명히 필요한 권한이 설정되지 않은 경우 해당 사용자 로그인에 대한 관련 권한을 부여하여 해당 문제를 해결해야합니다.

해당 사용자가 데이터베이스 및 서버에 관련 권한을 부여한 경우 서버에서 해당 로그인에 대한 자격 증명 문제가 발생하면 SQL Server에 다시 인증을 부여하지 못하지만 클라이언트는 다음 오류 메시지를 받게됩니다.

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

이제 오류 메시지를 살펴보면 이것이 레벨 및 상태를 이해하는 데 설명이 아닌 것처럼 느껴집니다. 기본적으로 운영 체제 오류는 로그인 인증 문제의 특성에 관계없이 '상태'를 1로 표시합니다. 따라서 더 자세히 조사하려면이 오류의 심각도 및 상태에 대한 자세한 정보를 위해 관련 SQL Server 인스턴스 오류 로그도 살펴 봐야합니다. 다음과 같이 로그에서 해당 항목을 살펴볼 수 있습니다.

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

위에서 정의한대로 오류의 심각도 및 상태 열은 문제의 원인에 대한 정확한 반영을 찾는 데 중요합니다. 위의 상태에 대한 오류 번호 8은 암호 불일치로 인한 인증 실패를 나타냅니다. 온라인 설명서 참조 : 기본적으로 심각도가 19보다 낮은 사용자 정의 메시지는 발생할 때 Microsoft Windows 응용 프로그램 로그로 보내지지 않습니다. 따라서 심각도가 19보다 낮은 사용자 정의 메시지는 SQL Server 에이전트 경고를 트리거하지 않습니다.

SQL Server 프로토콜 (Dev.team)의 프로그램 관리자 인 Sung Lee가 오류 상태 설명에 대한 추가 정보를 간략하게 설명했습니다. 일반적인 오류 상태와 해당 설명은 다음 표에 나와 있습니다.

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 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 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

해당 SQL Server 인스턴스의 오류 로그에서 정의 된 심각도 또는 상태 수준이 없음을 알 수 있습니다. 따라서 다음 문제 해결 옵션은 이벤트 뷰어의 보안 로그를 확인하는 것입니다 [스크린 샷이 누락 되었기 때문에 편집하지만

아이디어, 흥미로운 이벤트에 대한 이벤트 로그를보십시오].


1
감사보고 어떻게되는지 볼
SREEDHAR

1
죽은 링크는 수정 고려하시기 바랍니다
크리스 헤이즈에게

10
이것보다 아래에있는 우월한 대답을 선택해야합니다.
void.pointer

4
아래 게시물을 읽으십시오.
Levi Fuller

6
@ void.pointer OP는 이미 "SQL Server의 인증 모드가 둘 다 (Windows 및 SQL)로 설정되어 있음"을 설정했습니다. 따라서 아래 게시물은이 질문과 관련이 없습니다.
Manachi

336

SQL Server 인증을 활성화해야합니다.

  1. 개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭하고 "속성"을 클릭합니다.

DBMS 속성 대화 상자

  1. "서버 속성"창의 왼쪽 페이지 목록에서 "보안"을 클릭합니다. "서버 인증"에서 "SQL Server 및 Windows 인증 모드"라디오 옵션을 선택합니다.

SQL Server 인증 대화 상자

  1. SQLEXPRESS 서비스를 다시 시작하십시오.

29
오 백만 번 감사합니다. 위의 "다시 시작"이라는 단어에 주로 사용됩니다!
Magnus Smith

4
나는 이것이 오래되었다는 것을 알고 있지만 그것은 완전히 내 엉덩이를 구했습니다. 감사합니다 Prateek. 감사합니다. 다시 시작해야합니다!
Levi Fuller

3
OP에서 "SQL Server의 인증 모드가 둘 다 (Windows 및 SQL)로 설정되어 있음"이라고 명시 적으로 표시하는 경우 왜 이것이 작동합니까?
Tim Schmelter 2014

4
이 답변은 중복되며 질문에 유용하지 않습니다. OP는 이미 "SQL Server의 인증 모드가 둘 다 (Windows 및 SQL)로 설정 됨"을 설정했습니다.
Manachi

1
대단하네요 .. !! 감사합니다 PrateekSaluja
Amin은

44

이 같은 문제가 있었지만 서버 인증을 "SQL Server 및 Windows 인증 모드"(당신이 가지고 있었던)로 설정하지 않았기 때문에 누군가가 귀하의 질문에서 그것을 놓친 경우 여기에 언급하고 싶었습니다.

다음 방법으로 액세스 할 수 있습니다.

  • 인스턴스 (IE SQLServer2008)를 마우스 오른쪽 버튼으로 클릭합니다.
  • "속성"을 선택합니다.
  • "보안"옵션 선택
  • "서버 인증"을 "SQL Server 및 Windows 인증 모드"로 변경합니다.
  • SQLServer 서비스를 다시 시작하십시오.
    • 인스턴스를 마우스 오른쪽 버튼으로 클릭
    • "다시 시작"을 클릭하십시오.

6
전체 서버를 다시 시작해야한다는 것을 알지 못했기 때문에 2 시간 정도를 보냈습니다. 그런 일을 위해 재시작이 필요하다는 것은 미친 짓입니다. Microsoft는 그들이 뱉어내는 쓰레기에 제한이 없습니다.
등록 된 사용자

1
이는 SQL 서버가 설치된 Amazon EC2 인스턴스에 연결할 수없는 이유에 대한 중요한 대답이기도합니다.
Teoman shipahi 2013 년

19

다음 방법으로 액세스 할 수 있습니다.

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

이것을 읽는 다른 사람들을 위해 : 이것은 2012 SQL Server에서도 저에게 효과적이었습니다. 감사


1
감사합니다 이것이 완벽했고 요점까지 .. 받아 들여지는 대답은 좋은 정보로 가득 차 있지만 이것이 저에게 효과적이었습니다.
Tony

4
"SQL Server의 인증 모드가 Windows와 SQL 모두로 설정되어 있습니다"라고 언급했기 때문에 OP에서는 작동하지 않습니다.
Tim Schmelter 2014

1

문제에 대한 올바른 해결책은 SQL Server에 대해 SQL Server 인증이 켜져 있는지 확인하는 것입니다.


1

"SQL Server 및 Windows 인증 모드"를 활성화 한 후 다음으로 이동합니다.

  1. 컴퓨터 관리 (시작 메뉴)
  2. 서비스 및 애플리케이션
  3. SQL Server 구성 관리자
  4. SQL Server 네트워크 구성
  5. MSSQLSERVER 용 프로토콜
  6. TCP / IP를 마우스 오른쪽 버튼으로 클릭하고 활성화합니다.

마지막으로 SQL Server를 다시 시작하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.