2007~2011/SQL Server2009. 1. 9. 15:13
Oracle 데이터베이스에서 데이터를 가져오는 DTS 패키지를 만들었습니다. 그리고 엔터프라이즈 관리자의 DTS 디자이너에서 패키지를 실행할 경우 정상적으로 수행이 되는데, 이 녀석을 예약된 작업에 집어 넣으면 작업이 실패한단 말이죠....

 

[환경]

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

Posted by Lai Go