none
ASP.NET 페이지 MS SQL 접속 에러 RRS feed

  • 질문


  • 먼저 서비스 DB에 연결 되어있는건 확인했습니다.

    하지만 프로시저를 실행해본 결과, 특정 DB에만 접속을 못하고 아래의 에러가 나왔습니다.

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

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

    "메시지 4064, 수준 16, 상태 1,"
    사용자 기본 데이터베이스를 열 수 없습니다.

    2012년 5월 17일 목요일 오후 2:30

답변

  • '사용자 기본 데이터베이스'를 열 수 없다면... 아마도 DB 연결 문자열로 지정된 사용자 계정으로는 DB 접속이 되도록 설정되어 있지 않은 것 같습니다. 원인 파악을 위해, 위와 같은 오류가 발생할 때의 DB 연결 문자열을 파악한 후, 그대로 UDL 파일로 연결 테스트를 한번 해보세요.

    UDL 파일 사용법은 다음의 글을 참고하세요.

    UDL 파일을 사용한 서버 연결 테스트
    ; http://dbrang.tistory.com/412

    2012년 5월 18일 금요일 오전 12:43
  • 이건 별로 어려운 문제가 아닌데 다른분들이 너무 좋은 방법을 설명해주셨네요 ^^;;

    vsts2010 기준으로 ㅡ> 보기 ㅡ> 서버 탐색기 -> 데이터 연결 -> 이곳에서 database 를 해당 사용자로 접속할수 있는지 확인해 보시구요..

    실무에서 사용할시에 개발용 아이디와 실 배포용 아이디가 다른경우가 많이 있습니다.

    그런 경우 배포용 아이디에 해당 db접근권한이 없는 경우가 있을수 있겠죠? 그 부분을 체크해보시기 바랍니다.

    2012년 5월 31일 목요일 오전 9:12

모든 응답

  • '사용자 기본 데이터베이스'를 열 수 없다면... 아마도 DB 연결 문자열로 지정된 사용자 계정으로는 DB 접속이 되도록 설정되어 있지 않은 것 같습니다. 원인 파악을 위해, 위와 같은 오류가 발생할 때의 DB 연결 문자열을 파악한 후, 그대로 UDL 파일로 연결 테스트를 한번 해보세요.

    UDL 파일 사용법은 다음의 글을 참고하세요.

    UDL 파일을 사용한 서버 연결 테스트
    ; http://dbrang.tistory.com/412

    2012년 5월 18일 금요일 오전 12:43
  • 안녕하십니까? ASPWant 님,
    Microsoft TechNet 의Forum 사이트를 방문해 주셔서 감사합니다.

    현재 문의 하신 ”보조DC에서 주DC에있는 작업마스터 PDC연결오류" 대해 답변드리겠습니다.

    [원인]
    연결할 때 사용자 기본 데이터베이스를 사용할 수 없습니다. 이 문제는 사용자 기본 데이터베이스가 다음과 같은 상태일 때 발생할 수 있습니다.
    •주의 대상 모드에 있는 경우
    •더 이상 존재하지 않는 경우
    •단일 사용자 모드에 있고 사용 가능한 유일한 연결을 다른 사람이나 다른 개체가 이미 사용하고 있는 경우
    •분리된 경우
    •RESTRICTED_USER 상태로 설정된 경우
    •오프라인 상태인 경우
    •응급 상태로 설정된 경우
    •사용자로 매핑된 로그인 계정이 없거나 사용자 액세스가 거부된 경우
    또한 로그인 계정은 여러 그룹의 멤버일 수 있고 연결할 때 이러한 그룹 중 하나의 기본 데이터베이스를 사용할 수 없을 수도 있습니다.


    [해결책]
    step 1. 시작을 누르고 실행을 누른 다음 cmd를 입력하고 Enter 키를 누릅니다.
    step 2. SQL Server 로그인이 사용하는 인증 종류에 따라 다음 방법 중 하나를 사용합니다. ◦SQL Server 로그인이 Microsoft Windows 인증을 사용하여 인스턴스에 연결하는 경우 명령 프롬프트에서 다음을 입력하고 Enter 키를 누릅니다.
     sqlcmd –E -S InstanceName –d master
     ◦SQL Server 로그인이 SQL Server 인증을 사용하여 인스턴스에 연결하는 경우 명령 프롬프트에서 다음을 입력하고 Enter 키를 누릅니다.
     sqlcmd -S InstanceName -d master -U SQLLogin -P Password
     참고 InstanceName은 연결하려는 SQL Server 2005 인스턴스 이름의 자리 표시자이고, SQLLogin은 기본 데이터베이스가 삭제된 SQL Server 로그인의 자리 표시자이며, Password는 SQL Server 로그인 암호의 자리 표시자입니다.
    step 3. sqlcmd 프롬프트에서 다음을 입력하고 Enter 키를 누릅니다.
     ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName
     참고 AvailDBName은 인스턴스에서 SQL Server 로그인이 액세스할 수 있는 기존 데이터베이스 이름의 자리 표시자입니다.
    step 4. sqlcmd 프롬프트에서 GO를 입력한 다음 Enter 키를 누릅니다.

    [참고자료]
    SQL Server 인스턴스에 연결할 때 "사용자 기본 데이터베이스를 열 수 없습니다."라는 오류 메시지가 나타난다

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    2012년 5월 18일 금요일 오전 1:54
    중재자
  • 이건 별로 어려운 문제가 아닌데 다른분들이 너무 좋은 방법을 설명해주셨네요 ^^;;

    vsts2010 기준으로 ㅡ> 보기 ㅡ> 서버 탐색기 -> 데이터 연결 -> 이곳에서 database 를 해당 사용자로 접속할수 있는지 확인해 보시구요..

    실무에서 사용할시에 개발용 아이디와 실 배포용 아이디가 다른경우가 많이 있습니다.

    그런 경우 배포용 아이디에 해당 db접근권한이 없는 경우가 있을수 있겠죠? 그 부분을 체크해보시기 바랍니다.

    2012년 5월 31일 목요일 오전 9:12