sa계정에 디폴트디비를 지정하는 경우가 얼마나 흔한지는 모르겠지만 저같은 경우 sa는 사용하지 않고 sa에게 권한을 부여받은 계정을 주로 사용하기 때문에 디폴트디비를 지정해주는 경우가 종종 있습니다.

그런데 모든 계정은 디폴트디비가 삭제되면 로그인이 되지 않습니다 ㅡ,.ㅡ;

사용자 기본 데이터베이스를 열 수 없습니다.
cannot open user default database. login failed

이런 에러가 발생합니다.

이런경우 제일 먼저 해봐야 할것은 '윈도우 인증'으로 로그인이 되나 입니다.
되면 해당계정의 DB를 다시 지정하면 되는 것이니까요.


보안 > 로그인 > sa계정 속성

문제는 '윈도우 인증도 막혔다면?'
후덜덜한 상황입니다.

마이크로 소프트 고객지원을 보면 'sqlcmd'를 이용하라는데...옌 어디있는거니?
( 참고 : 마이크로 소프트 고객센터 - SQL Server 인스턴스에 연결할 때 "사용자 기본 데이터베이스를 열 수 없습니다."라는 오류 메시지가 나타난다 )

다행이 Sungmin Go님의 블로그에 자세한 복구 방법이 나와있습니다.
참고 : Sungmin Go님 블로그 - 데이터베이스 SUSPECT 후 로그인 실패


명령 프롬프트를 열고 'C:\Program Files\Microsoft SQL Server\80\Tools\Binn'까지 이동합니다.
여기서 '80'은 2005를 일때고 2008은 '90', 2010은 '100'입니다.
자신이 설치한 버전에만 'Tools'폴더나 'Binn'폴더가 있으므로 확인해보시면 됩니다.

osql -S . -U [계정] -P [비밀번호] -d [로그온 할 DB]
이거 대소문자 구분 합니다.
계정과 비밀번호를 쓰고 로그온할 DB는 'master'로 하시면 됩니다.

명령이 성공하면 명령 프롬프트가 꺽쇠'>'모양이 됩니다.
이상태에서
1> sp_defaultdb 'sa','master'
2> go
라고 입력하시면 됩니다.



이렇게하면 디폴트 디비문제로 로그인이 되지 않던 계정이 로그인이 욉니다.
물론 마스터DB가 날아간경우에는 이 방법도 통하지 안죠 ㅡ,.ㅡ;;



_
  • Creative Commons License

  • Posted by 당근천국

    댓글을 달아 주세요