[환경]
SQL Server 2000 SP4
[현상]
ORACLE 데이터베이스에 접속하여 데이터를 가져오는 로컬 패키지를 디자인하여 DTS 디자이너에서 해당 패키지를 실행하였을 때는 정상적으로 성공하였으나 예약된 작업으로 등록하여 실행하였을 때, 아래와 같은 오류 메시지가 발생합니다.
다음 사용자로 실행되었습니다. LAIGODB\SYSTEM DTSRun: 로드 중... DTSRun: 실행 중... DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1 DTSRun OnFinish: DTSStep_DTSExecuteSQLTask_1 DTSRun OnStart: DTSStep_DTSDataPumpTask_1 DTSRun OnError: DTSStep_DTSDataPumpTask_1, 오류 = -2147467259 (80004005) 오류 문자열: Oracle 클라이언트 및 네트워킹 구성 요소가 없습니다. 이 구성 요소는 Oracle Corporation에서 제공하며 Oracle 버전 7.3.3 또는 그 이후 버전의 클라이언트 소프트웨어 설치의 일부입니다. 공급자가 작동하려면 이 구성 요소가 설치되어야 합니다. 오류 출처: Microsoft OLE DB Provider for Oracle 도움말 파일: 도움말 컨텍스트: 0 오류 정보 레코드: 오류: -2147467259 (80004005); 공급자 오류: 0 (0) 오류 문자열: Oracle 클라이언트 및 네트워킹 구성 요소가 없습니다. 이 구성 요소는 Oracle Corporation에서 제공하며 Oracle 버전 7.3.3 또는 그 이후 버전의 클라이언트 소프트웨어 설치의 일부입니다. 공급자가 작동하려면 이 구성 요소가 설치되어야 합니다. 오류 출처: Microsoft OLE DB Provider for Oracle 도움말 파일: 도움말 컨텍스트: 0 DTSRun OnFinish: DTSStep_DTSDataPumpTask_1 DTSRun: 패키지 실행을 완료했습니다. 종료 코드 1을(를) 처리합니다. 단계가 실패했습니다.
[원인]
이 오류는 Oracle Client 모듈을 사용하여 Oracle Server에 접속할 수 없으므로 발생한 오류입니다. EM의 DTS 디자이너에서 패키지를 실행한 경우에는 Windows NT 계정의 보안 컨텍스트이며, 예약된 작업에 등록하여 실행할 경우, 작업 '소유자' 에 의해 보안 컨텍스트가 결정이 됩니다. 설정된 작업 소유자는 sysadmin 권한을 가지고 있으므로 이 경우에는 SQL Agent Service 시작 계정의 보안 컨텍스트를 가집니다.
SQL Agent Service 시작 계정은 LOCAL SYSTEM 계정이며 이는 외부 모듈 사용 권한이 없거나 Remote Server 에 대한 액세스 권한이 없기 때문에 이와 같은 오류가 발생하였습니다.
[조치방법]
SQL Agent Service 시작 계정을 Administrators 계정으로 변경합니다.
[분석결과]
1. 로컬 패키지를 실행한 소유자 권한 확인 : sa
2. SQL Agent Service 시작 계정 : LOCAL SYSTEM
[참고자료]
INF: DTS 패키지를 예약된 작업으로 실행하는 방법
http://support.microsoft.com/?id=269074
작성자 : Lai Go / 작성일자 : 2009.01.09