2007~2011/SQL Server2010. 12. 10. 16:46

Login failed for user 'sa'. 원인 : 명시적으로 지정된 데이터베이스를 열지 못했습니다. (오류: 18456, 심각도: 14, 상태: 38) 라는 오류 메시지가 발생하는 원인에 대해서 아래와 같이 정리하였습니다.


[환경]
SQL Server 2008 SP1


[현상]
이벤트 로그에서 감사 실패 메시지 발생

원본:            MSSQLSERVER
이벤트 ID:        18456
작업 범주:         로그온
수준:            정보
키워드:           클래식,감사 실패
컴퓨터:           laigodb01.laigo.kr
설명:
사용자 'sa'이(가) 로그인하지 못했습니다. 원인: 명시적으로 지정된 데이터베이스를 열지 못했습니다. [클라이언트: 192.168.0.100]


[원인]
클라이언트에서 존재하지 않는 데이터베이스에 연결하려고 하였을 때, 위와 같은 오류가 기록될 수 있습니다. 해당 클라이언트 IP 에서 접속하는 어플리케이션에 대한 확인이 필요합니다.


[분석결과]
SQL ERRORLOG 확인
Login failed for user 'sa'. 원인 : 명시적으로 지정된 데이터베이스를 열지 못했습니다. (오류: 18456, 심각도: 14, 상태: 38)


[현상 재현]
Sqlcmd 명령으로 sa 계정으로 실제 존재하지 않는 laigo 데이터베이스에 접근하려 하였을 때, 이와 같은 오류가 발생할 수 있습니다.

C:\Users\laigo>sqlcmd -S laigodb -U sa -P ******-d laigo


메시지 4060, 수준 11, 상태 1, 서버 laigodb, 줄 1
로그인에서 요청한 데이터베이스 "laigo"을(를) 열 수 없습니다. 로그인이 실패했습니다.

메시지 18456, 수준 14, 상태 1, 서버 laigodb, 줄 1
사용자 'sa'이(가) 로그인하지 못했습니다.


작성자 : Lai Go / 작성일자 : 2010.12.09

Posted by 사용자 Lai Go
TAG ,

댓글을 달아 주세요

  1. 18456 명시적으로 지정된 데이타 베이스 에러가 뜨고 있는데요.
    위 글에서 언급한 원인인 클라이언트에서 존재하지 않는 데이터 베이스에 연결하여 했다는 의미가 잘 이해가 안됩니다.
    현재 Management Studio 로는 접속이 되고, 코드로만 위와 같은 에러가 발생하고 있는데요..
    며칠전 까지 사용하던 환경인데 어떠한 변경으로 이러는지 찾을 수가 없네요^^;

    2011.08.23 09:01 [ ADDR : EDIT/ DEL : REPLY ]
    • 연결을 시도한 방법과 SQL SERVER 에서 확인된 ERRORLOG 결과를 같이 올려주시면 좋겠습니다. sqler.com 이나 sqltag.org 사이트에 문의해 주시면 도움 얻으실 수 있습니다~

      2011.08.23 09:47 신고 [ ADDR : EDIT/ DEL ]
  2. Lim MH

    안녕하세요. SQL 서버 관련해서 해당 에러 해결하려고 검색하다가 방문드리게되었습니다.
    제가 SQL에 대해서 전혀 모르기 때문에 원인 파악이 쉽게 문제가 발생한 히스토리를 말씀드리겠습니다.

    http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10205&docId=291187166

    댓글이 안 올려져서 제가 지식인에 올린 링크를 올립니다.
    어떤 분께서 도메인 삭제하고 설정 수정 중에 기존 사용자 계정과 Database의 맵핑이 없어져서 그렇다고 해주셨는데 비전문가가 아닌 저로서는 무슨 말인지 모르겠습니다...저는 SQL 서버와 전혀 관계 없는 일을 하는데 어쩔 수 없이 일 때문에 A라는 프로그램을 셋팅하다가 이런 비극을 맞었는데요... 방법이 있을까요? 답변해주시면 정말 감사하겠습니다.

    2017.12.28 16:25 [ ADDR : EDIT/ DEL : REPLY ]
    • A라는 어플리케이션이 DB에 연결할 때 사용하는 로그인 정보(연결문자열, Connection string)를 먼저 확인하시는 게 좋겠습니다. 해당 로그인 정보(서버, 포트, 로그인 이름, 패스워드)로 SQL Server Management Studio 에서는 정상 로그인이 가능한지 체크하고 로그인이 실패한다면 오류 메시지를 기반으로 검색하여 로그인 실패 원인을 확인해야 합니다.

      2017.12.28 16:59 신고 [ ADDR : EDIT/ DEL ]
  3. Lim MH

    Lai Go님 빠른 답변 감사합니다.
    A라는 어플리케이션에서도 "WIN-2NEKEGJF11Q\Administrator가 데이터 베이스에 연결할 수 없습니다."
    라고 오류메시지를 나타냅니다.
    기존에 SQL Server Management Studio에서 Window인증에서 로그인 시,

    사용자 이름: WIN-2NEKEGJF11Q\Administrator (자동선택)
    암호: X (자동선택)

    으로 로그인하는데 18456에러가 발생하고 에러 로그를 보면 아래와 같이 나타납니다.

    Login failed for user 'Workgroup-컴퓨터 이름, 원인:명시적으로 지정된 데이터베이스 'X'를 열지 못했습니다. <클라이언트: local machine> 오류 18456, 심각도 14 상태 : 38
    Login failed for user 'Workgroup-컴퓨터 이름, 원인: 제공된 이름과 일치하는 로그인을 찾을 수 없습니다. <클라이언트:local machine> 오류 18456, 심각도 14 상태 : 5

    혹시 추측되는 원인이 있으신지요 ??


    2017.12.28 17:41 [ ADDR : EDIT/ DEL : REPLY ]
    • WIN-2NEKEGJF11Q\Administrator 윈도우 로그인이 존재하지 않는 것으로 보입니다. (컴퓨터 이름이 바뀌었거나 SID가 달려졌을 수 있겠네요) sysadmin 역할 권한(sa 로그인과 같은)을 가진 사용자로 DB에 연결한 후 CREATE LOGIN 명령으로 위 로그인을 생성하고 필요한 권한을 부여해야 할 것으로 보입니다. 진행하시다 문의사항이 있으시다면 구체적인 내용을 작성해서 이곳에 문의해 보는 것이 도움될 것 같습니다. http://www.sqler.com/390533

      2018.01.02 09:48 신고 [ ADDR : EDIT/ DEL ]