PRB: "Microsoft Jet 데이터베이스 엔진에서 '(알 수 없음)' 파일을 열 수 없습니다." 오류 80004005

증상

ADO(ActiveX Data Objects) 또는 ODBC를 사용하여 Microsoft Access 데이터베이스에 연결하는 경우 다음 오류 메시지가 표시될 수 있습니다.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

원인

이 오류 메시지에는 다음과 같은 몇 가지 원인이 있습니다.

  • Microsoft IIS(인터넷 정보 서버)가 사용하는 계정(일반적으로 IUSR)에는 파일 기반 데이터베이스 또는 파일이 포함된 폴더에 대한 올바른 Windows NT 권한이 없습니다.
  • 파일 및 데이터 원본 이름은 배타적인 것으로 표시됩니다.
  • 다른 프로세스 또는 사용자에게 Access 데이터베이스가 열려 있습니다.
  • 이 오류는 위임 문제로 인해 발생할 수 있습니다. 인증 방법(기본 및 NTLM)을 확인합니다(있는 경우). 연결 문자열 UNC(유니버설 명명 규칙)를 사용하는 경우 기본 인증 또는 절대 경로(예: C:\Mydata\Data.mdb)를 사용해 보세요. 이 문제는 UNC가 IIS 컴퓨터에 로컬인 리소스를 가리키는 경우에도 발생할 수 있습니다.
  • 이 오류는 테이블이 네트워크 서버의 Access 데이터베이스에 있는 테이블에 연결된 로컬 Microsoft Access 데이터베이스에 액세스할 때도 발생할 수 있습니다.

해결 방법

다음 항목은 이전 원인 목록에 해당합니다.

  • 파일 및 폴더에 대한 사용 권한을 확인합니다. 임시 파일을 만들고/또는 삭제할 수 있는지 확인합니다. 임시 파일은 일반적으로 데이터베이스와 동일한 폴더에 만들어지지만 WINNT 폴더와 같은 다른 폴더에서도 파일을 만들 수 있습니다.

    데이터베이스에 대한 네트워크 경로(UNC 또는 매핑된 드라이브)를 사용하는 경우 공유, 파일 및 폴더에 대한 권한을 검사.

  • 파일 및 DSN(데이터 원본 이름)이 배타적인 것으로 표시되지 않는지 확인합니다.

  • "다른 사용자"는 Microsoft Visual InterDev일 수 있습니다. 데이터베이스에 대한 데이터 연결이 포함된 Visual InterDev 프로젝트를 닫습니다.

  • 단순화. 로컬 드라이브 문자를 사용하는 시스템 DSN을 사용합니다. 필요한 경우 테스트할 로컬 드라이브로 데이터베이스를 이동합니다.

참조

파일 액세스 실패를 검사 Windows NT 파일 모니터를 사용합니다. 파일 모니터를 다운로드하려면 Windows Sysinternals를 참조하세요.