2010년 7월 12일 월요일

Linked Server 저장프로시져 Job 호출시 에러 발생

Linked Server 저장프로시져 Job 호출시 에러 발생

[작업 환경]
Windows 2000 Advanced Server
SQL Server 2000 Standard Edition (Linked Server 구성)

[세부사항]
Linked Server로 구성된 2-System(A & B)에서 A System에 작업(Job) 스캐쥴을 생성 상대(B-system)에 DATA를 분석하여
본 서버에 DataBase를 업데이트
해당 작업 실행시
==================================================================================
SQL Server Scheduled Job 'aaa' (0x27C5AB0F8FAF0247BA561A9762700AEA) - Status: 실패 - Invoked on: 2005-12-01 15:09:01 - Message: 작업이 실패했습니다. 작업이 사용자 sa에 의해 호출되었습니다. 실행할 마지막 단계는 단계 1(ddd)입니다.
==================================================================================
이벤트 에러 발생

[문제 발생 원인]
상기 오류 구문만을 분석해 보면 구성된 Job을 실행함에 있어 관련 계정이 충분한 권한을 가지지 못한 것에서 발생한 메시지로
Job Scheduling은 SQLSERVERAGENT 서비스의 인증을 통해 타 시스템에 해당 쿼리를 실행하게 됨으로 두 시스템간의 인증문제로 유추.
최초에는 RPC 상속 문제라고 추측 관련 Stored Procedure를 수정하여 Linked 서버 Data를 가져오는 쿼리 부분을 B System에 작성하여 A System에서
OPENQUERY로 실행하려 했으나 Job 오류 기록을 세부적으로 살펴본 결과 SQLAgent Service의 계정 권한 문제로 판단 .
SQL 2000 서버에서 작업(Job)을 수행하기 위해서는, system admin role에 SQL Agent 계정이 포함되어 있어야 하나 고객님께 문의 결과 SQLAgent가
“Local System Account"로 수행되고 있으므로 해당 권한이 없었습니다.
Winodws 2000 계열에서 Local System Account는 System-Level의 서비스를 구동하기 위한 것으로 사용자 응용프로그램(여기서는 SQL의 Job Service)를
구동하는데에는 적절하지 않은 계정입니다.

[조치 사항]
SQLSERVERAGENT Service의 계정을 Local System => Administrator 계정으로 변경
서비스 재시작 후 작업 정상적으로 구동


CF)
1. SQLSERVERAGENT Service 가 Administrator 로 서비스 시작
2. 링크드 계정에 Administrator 계정 추가 될 것
3. Job 계정이 sa 로 될 것

댓글 없음:

댓글 쓰기