2009-06-06 9 views
2

데이터베이스 백업을 압축하는 SQL Server 에이전트 작업을 실행 중입니다. 내가 실행하는 응용 프로그램은 데이터베이스의 경로를 인수로 사용하는 C# Windows 응용 프로그램입니다. 응용 프로그램 양식을 실행하면 명령 프롬프트가 제대로 작동합니다. 그러나 운영 체제 (CmdExec)를 유형으로 사용하는 SQL Server 작업 내에서 실행하면 다음 오류가 발생합니다.SQL Server 작업 - 지정한 파일을 찾을 수 없습니다.

내가 명령으로 다음 한 작업 내에서

"지정된 파일을 찾을 수 없습니다"

D : \ DatabaseBackups DatabaseBackupManager.exe D : \ \ DatabaseBackups \ SubDit \ Database.bak을

DatabaseBackups 폴더의 SQL Server 에이전트 계정에 대한 특정 디렉터리 사용 권한을 설정하려고했지만 여전히 동일한 오류가 발생합니다.

구글이 일한 것을 던지지 않고 나에게 미친 듯이 몰아 치기 시작한 것처럼 누군가가이 빛에 어떤 빛을 던질 수 있습니까?

감사합니다.

+0

을? 실행 파일 또는 데이터베이스 백업? –

답변

1

도움 주셔서 감사합니다. 나는 당신이 제안한 모든 것을 시도해 보았고 나의 백업을 압축하기 위해 사용하고있는 7za.exe의 C : \ Windows \ System32 폴더를 찾고 있다는 것을 알았다. 그것이 내 응용 프로그램에서 실행 된 동일한 디렉토리에서 호출되는 것처럼 나는 EXE 파일을 참조했다. 발견되지 않는 파일

다시 한번 감사

0

먼저 .exe가 SQL에 의해 실제로 발견되는지 확인하십시오. 그렇다면 다음 단계는 DatabaseBackupManager.exe에 일부 논리를 넣어 해당 스레드에 대한 ACL (예 : DirectorySecurity DirSec = di.GetAccessControl (AccessControlSections.All);)을 수집하는 것입니다. 대부분의 경우 SQL은 프로세스를 시작할 때 ACL을 트리밍합니다. 그렇다면 해당 파일에 액세스하기 위해 해당 스레드를 가장해야하거나 해당 프로세스가 r/w 액세스 권한을 부여받는 곳을 찾아야합니다. % temp %.

1

D 드라이브는 매핑 된 드라이브가 아닌 로컬 드라이브로 존재해야합니다. (로그온하지 않은 다른 사용자가 해당 계정을 강제로 매핑하지 않으면 내가 알지 못합니다.)

또한 권한과 관련하여 에이전트와 관련된 모든 것 실행 중입니다.

프로세스를 시작한다고 가정 할 때 C# 프로세스에 일부 로그인을해야 할 수도 있습니다. 프로세스가 시작되지 않으면 디렉터리 또는 .NET Framework 설정과 관련된 해당 계정에 대한 사용 권한이 될 수 있습니다.

또한 Windows를 사용하여 오류를 감사하여 열려고하는 파일을 확인할 수 있습니다.

임시로 Administrators 그룹에 에이전트 계정을 추가하고 작동하면이 권한은 "시스템에서 지정한 파일을 찾을 수 없습니다"오류의 원인이되는 권한을 가리 킵니다.

관련 문제