2013-08-22 2 views
0

로컬 및 원격 테이블이있는 Access 데이터베이스가 있습니다. 원격 테이블은 ODBC 연결을 통해 SQL Server 데이터베이스에 연결됩니다.Access 원격 테이블을 사용하여 쿼리를 실행하려고 할 때 오류가 발생했습니다.

Access 데이터베이스를 열면 로컬 테이블과 원격 테이블의 내용을 모두 열어 볼 수 있습니다. ASP.NET 응용 프로그램에서 원격 테이블에 연결하는 데 문제가 없어야한다는 증거입니다.

Visual Studio에서 ASP.NET 응용 프로그램을 실행할 때 로컬 및 원격 테이블에 모두 액세스 할 수 있습니다. 문제없이 액세스하십시오.

내 응용 프로그램을 IIS에 넣고 localhost에서 응용 프로그램을 실행하자마자 Access 파일의 로컬 테이블에 내 코드 만 액세스 할 수 있지만 원격 테이블은 액세스 할 수 없습니다. 시도 할 때 다음과 같은 오류가 발생합니다. "ODBC - 'FMPOS_live'연결에 실패했습니다." 그러나 Access에서 원격 테이블을 직접 여는 데 문제가 없지만 어떤 이유로 든 IIS에서 실행중인 내 응용 프로그램에서 원격 테이블에 액세스 할 수는 없습니다.

액세스 파일에 액세스하는 사람이나 대상에 따라 해당 프로세스에서 원격 테이블을 사용할 수 있는지 여부를 결정하는 권한이 있습니까 ??

답변

0

문제는 응용 프로그램 풀 ID입니다. 액세스가 기본 프로세스 인 ApplicationPoolIdentity Identity에 의해 원격 테이블에 대한 액세스를 허용하지 않았습니다. 내 Windows 사용자 로그인으로 ID를 변경하고 그것은 효과가!

지침 : 1.에 귀하의 웹 사이트 2.에 대한 응용 프로그램 풀로 이동하여 고급 설정 프로세스 모델 ID로 3. 사용자 계정을 선택하고 윈도우 로그인에 대한 사용자 이름과 암호를 입력을 선택합니다.

1

Visual Studio에서 실행하는 경우 자신의 자격 증명을 사용하여 SQL 서버에 연결하고 있습니다.

IIS에서 실행하는 경우 응용 프로그램 풀의 구성에 따라 ApplicationPoolIdentity, 네트워크 서비스 또는 로컬 시스템을 사용하고 있습니다. 웹 사이트가 실행중인 계정에 로그인 및 읽기 권한을 허용해야합니다.

VS에서 실행하는 경우 SQL 서버의 sysadmin 일 가능성이 높기 때문에 아마 작동 할 것입니다.

작업 관리자에서 "w3wp.exe"를 실행중인 사용자를 확인하십시오.

ApplicationPoolIdentity의 경우 사용자 이름은 IIS APPPOOL \ NameOfApplicationPool입니다.

+0

나는 "Everyone"이라는 사용자에게 Access 데이터베이스에 대한 모든 액세스 권한을 부여했으며 내 웹 응용 프로그램은 여전히 ​​Access 데이터베이스의 원격 테이블에 액세스 할 수 없습니다. 로컬 테이블에 액세스하는 데 문제가 없습니다. 이것이 Sql 서버 문제라면 Sql Server는 Access 데이터베이스를 사용하여 테이블에 대한 액세스를 제공하는 프로세스를 어떻게 알 수 있습니까? 다른 SQL 서버 데이터베이스에 원격 테이블을 포함하는 다른 Access 데이터베이스를 사용하는 동일한 웹 서버에서이 상황을 설정하면 동일한 일이 발생하므로 하나의 컴퓨터에만 제한된 일부 애매한 문제가있는 것 같지 않습니다. 기타 아이디어? –

+1

테이블은 액세스 데이터베이스를 통해 연결되어 있습니까? 이 사람은 복잡해 보입니다! 그럼에도 불구하고 액세스 데이터베이스를 여는 IIS 프로세스가 여전히 SQL 연결을 여는 프로세스이므로 권한이 필요하다고 생각합니다. 이제 내 대답이 명확하지 않다는 것을 알게되었습니다. 액세스 데이터베이스가 아닌 SQL 서버 데이터베이스에 권한을 추가해야합니다. –

+0

하지만 ODBC 사용자 이름과 암호가있는 SQL Server 인증을 사용하여 SQL Server가 아닌 Windows authenticaton에 연결합니다. –

관련 문제