데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SQL Server 인증 실패시 반환되는 클라이언트 메시지 정보

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에 로그인을 할 때 오류가 발생 하였다. 이때 클라이언트에 반환되는 오류 메시지에는 다양한 정보가 포함되어 있다. 이 메시지를 파악함으로써 문제 해결에 큰 도움이 된다.

 

다음의 경우를 살펴보자. 아래 그림은 단순히 SSMS에서 비밀번호와 ID를 틀리게 작성하여 로그인을 시도한 결과이다. (대부분의 경우는 응용프로그램에서 SQL Server에 접속하여 사용는 환경일 것이다.)

 

또는 .NET 어플리케이션에서 다음과 같은 메시지를 반환 할 수도 있다.

사용자 '<user_name>'이(가) 로그인하지 못했습니다.(.Net SqlClient 데이터 공급자)"

------------------------------

"서버 이름: <computer_name>"

"오류 번호: 18456"

"심각도: 14"

"상태: 1"

"줄 번호: 65536"

 

 

또는 다음과 같음 메시지가 반환 될 수도 있다.

"메시지 18456, 수준 14, 상태 1, 서버 <computer_name>, 줄 1"

"사용자 '<user_name>'이(가) 로그인하지 못했습니다."

 

 

보안 향상을 위해 클라이언트로 반한되는 오류 메시지는 의도적으로 인증 오류의 특성을 숨긴다. 그러나 SQL Server 오류 로그의 해당 오류에는 인증 실패 조건에 매핑되는 오류 상태가 포함되어 있으므로 다음 표를 참고하여 로그인 실패에 대한 정보를 확인 할 수 있다.

 

[18456 Error 상태에 따른 정보]

상태

설명

1

오류 정보를 사용할 수 없습니다.일반적으로 이 상태는 오류 정보를 수신할 수 있는 권한이 없음을 의미합니다.자세한 내용은 SQL Server 관리자에게 문의하십시오.

2

사용자 ID가 잘못되었습니다

3

 

5

사용자 ID가 잘못되었습니다.

6

SQL Server 인증에 Windows 로그인 이름을 사용하려고 했습니다.

7

로그인을 사용할 수 없으며 암호가 잘못되었습니다.

8

암호가 잘못되었습니다.

9

암호가 잘못되었습니다.

10

도메인 컨트롤러에서 계정 잠김

11

올바른 로그인이지만 서버 액세스에 실패했습니다.예를 들어 Windows 사용자에게 로컬 Administrators 그룹의 멤버로 SQL Server에 액세스할 수 있는 권한이 있지만 Windows에서 관리자 자격 증명을 제공하지 않는 경우에 이 오류가 발생할 수 있습니다.연결하려면 관리자 권한으로 실행 옵션을 사용하여 연결 프로그램을 시작하고 SQL Server에 특정 로그인으로 Windows 사용자를 추가합니다.

12

올바른 로그인이지만 서버 액세스에 실패했습니다

13

SQL Server 일시 중지

16

계정의 디폴트데이터베이스 문제

18

암호를 변경해야 합니다.

 

 

[그 외 원인]

SQL Server 인증이 Windows인증만 사용하도록 구성되어 있는 경우

  • 서버가 혼합 인증 으로 구성되고 ODBC 연결이 TCP 프로토콜을 사용하고 신뢰할 수 있는 연결을 사용해야 한다고 연결에 명시적으로 지정되어 있지 않은 경우
  • 서버가 혼합 모드 인증으로 구성되고 ODBC 연결이 명명된 파이프를 사용하고 클라이언트가 명명된 파이프를 여는데 사용한 자격 증명이 자동으로 사용자를 가장하는데 사용되고 신뢰할 수 있는 연결을 사용해야 한다고 연결에 명시적으로 지정되어 있지 않은 경우

 

이 문제를 해결 하기 위해서는 연결 문자열에 TRUSTED_CONNECTION = TRUE를 포함해야 한다.

 

[로그인 실패 시 사용자가 확인 해야 할 사항]

SQL Server인증을 사용하여 연결하는 경우 SQL Server가 혼합모드로 구성되어 있는지 확인

SQL Server 로그인 계정이 존재하는지 확인, 오타 유무 확인

Windows 인증을 사용하는 경우 올바른 도메인에 로그인이 되어 있는지 확인

관리자 자격증명 사용시 [관리자 권한으로 실행]옵션을 사용하여 응용프로그램을 시작. 연결 되면 Windows 사용자를 개별 로그인으로 추가

 

 

[로그인 관련 다양한 Error]

Error ID

Comment

18451

Login failed for user '%.*ls'. Only administrators may connect at this time.%.*ls

18452

Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.%.*ls

18458

Login failed. The number of simultaneous users already equals the %d registered licenses for this server. To increase the maximum number of simultaneous users, obtain additional licenses and then register them through the Licensing item in Control Panel.%

18459

Login failed. The workstation licensing limit for SQL Server access has already been reached.%.*ls

18460

Login failed. The number of simultaneous users has already reached the limit of %d licenses for this '%ls' server. Additional licenses should be obtained and installed or you should upgrade to a full version.%.*ls

18461

Login failed for user '%.*ls'. Reason: Server is in single user mode. Only one administrator can connect at this time.%.*ls

18462

The login failed for user "%.*ls". The password change failed. The password for the user is too recent to change. %.*ls

18463

The login failed for user "%.*ls". The password change failed. The password cannot be used at this time. %.*ls

18464

Login failed for user '%.*ls'. Reason: Password change failed. The password does not meet Windows policy requirements because it is too short.%.*ls

18465

Login failed for user '%.*ls'. Reason: Password change failed. The password does not meet Windows policy requirements because it is too long.%.*ls

18466

Login failed for user '%.*ls'. Reason: Password change failed. The password does not meet Windows policy requirements because it is not complex enough.%.*ls

18467

The login failed for user "%.*ls". The password change failed. The password does not meet the requirements of the password filter DLL. %.*ls

18468

The login failed for user "%.*ls". The password change failed. An unexpected error occurred during password validation. %.*ls

18470

Login failed for user '%.*ls'. Reason: The account is disabled.%.*ls

18471

The login failed for user "%.*ls". The password change failed. The user does not have permission to change the password. %.*ls

18482

Could not connect to server '%.*ls'because '%.*ls' is not defined as a remote server. Verify that you have specified the correct server name. %.*ls.

18483

Could not connect to server '%.*ls'because '%.*ls' is not defined as a remote login at the server. Verify that you have specified the correct login name. %.*ls.

18485

Could not connect to server '%.*ls'because it is not configured to accept remote logins. Use the remote access configuration option to allow remote logins.%.*ls

18486

Login failed for user '%.*ls' because the account is currently locked out. The system administrator can unlock it. %.*ls

18487

Login failed for user '%.*ls'.Reason: The password of the account has expired.%.*ls

18488

Login failed for user '%.*ls'.Reason: The password of the account must be changed.%.*ls

18489

The dedicated administrator connection is in use by "%.*ls" on "%.*ls".%.*ls

 

 

[참고자료]

http://msdn.microsoft.com/ko-kr/library/cc645917.aspx

http://sql-articles.com/articles/troubleshooting/troubleshooting-login-failed-error-18456/

http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

 

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
» SQL Server 인증 실패시 반환되는 클라이언트 메시지 정보 jevida(강성욱) 2016.09.15 3631
1749 SQL Server에 할당된 메모리 개체 확인 jevida(강성욱) 2016.09.15 1582
1748 SQL Server 비동기 업데이트 활성 / 비활성에 따른 특성 jevida(강성욱) 2016.09.15 1694
1747 DBCC CHECKDB와 Compute Column 인덱스의 성능 관계 jevida(강성욱) 2016.09.15 1432
1746 Collation에 따른 DMV 실행 오류 jevida(강성욱) 2016.09.15 1308
1745 참조 개체 확인 (sys.sql_expression_dependencies) jevida(강성욱) 2016.09.15 1561
1744 특정 테이블의 마지막 접근 시간 알아보기 jevida(강성욱) 2016.09.15 1237
1743 SQL Server Fill Factor (채우기 비율)에 관한 오해와 진실 jevida(강성욱) 2016.09.15 3596
1742 LOB 데이터와 Shrink 작업 jevida(강성욱) 2016.09.15 1239
1741 데이터베이스 함수 검색 하기 jevida(강성욱) 2016.09.15 1063
1740 필터 통계 사용과 파리미터 사용 jevida(강성욱) 2016.09.15 1179
1739 유지관리 계획과 병렬처리 – Index Rebuild jevida(강성욱) 2016.09.15 1065
1738 유지관리 계획과 병렬 처리 – CHECKDB jevida(강성욱) 2016.09.15 1129
1737 쿼리 사이즈(길이) 에 따른 CPU 사용량 증가 jevida(강성욱) 2016.09.14 1301
1736 Ad-hoc 쿼리를 매개변수화 하여 성능 높이기 jevida(강성욱) 2016.09.14 1652
1735 통계 업데이트 옵션(ROWCOUNT and PAGECOUNT) jevida(강성욱) 2016.09.14 1229
1734 SQL Server Plan Guide 생성 및 사용 jevida(강성욱) 2016.09.14 1418
1733 SQL Server 그래픽 실행 계획 노드 정보 jevida(강성욱) 2016.09.14 1066
1732 프로파일러를 이용한 실행계획 캡처하기 jevida(강성욱) 2016.09.14 959
1731 SQL Server 그래픽 실행 계획 및 텍스트 실행 계획 jevida(강성욱) 2016.09.14 3106





XE Login