INF: DTS 패키지를 예약된 작업으로 실행하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 269074 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR269074
모두 확대 | 모두 축소

이 페이지에서

요약

데이터 변환 서비스(DTS) 패키지에서 자주 발생하는 문제는 DTS 패키지가 SQL Server 엔터프라이즈 관리자에서는 오류 없이 실행되지만 DTS 패키지를 작업에 등록하여 실행되도록 예약한 경우 해당 패키지가 실행되지 않는다는 것입니다. 일반적으로 패키지가 작업으로 실행되는 경우와 대화형으로 실행되는 경우 보안 컨텍스트의 차이로 인해 이러한 문제가 발생합니다.

본 문서에서는 DTS 패키지 실행과 관련된 보안 문제에 대해 설명합니다.

추가 정보

이 문서에 사용되는 주요 용어는 다음과 같습니다.
표 축소표 확대
용어 설명
DTS데이터 변환 서비스
SQL 인증Microsoft SQL Server 로그인과 암호를 기반으로 하는 보안 시스템
표준 보안SQL 인증을 참조하십시오.
SQL Server 인증SQL 인증을 참조하십시오.
Microsoft Windows NT 인증Microsoft Windows 사용자 계정을 사용하여 연결할 경우, SQL Server는 Microsoft Windows NT, Microsoft Windows 2000, Microsoft Windows 95 또는 Microsoft Windows 98이 실행되고 있는 컴퓨터에 로그온할 때 사용되는 사용자 이름과 암호가 유효성 검사를 거쳤는지를 확인합니다.
통합 보안Microsoft Windows NT 인증을 참조하십시오.
Windows NT 또는 Microsoft Windows 2000 인증Microsoft Windows NT 인증을 참조하십시오.
Microsoft Windows NT 계정 또는 로그인은 Windows 계정 또는 로그인과 같습니다.Microsoft Windows NT 로그인 계정 또는 Microsoft Windows 2000 로그인 계정과 같습니다.
SQL 에이전트SQL Server 에이전트 서비스
SEMSQL Server 엔터프라이즈 관리자

DTS 패키지가 실행되는 위치는?

DTS 패키지와 관련하여 자주 보고되는 문제는 패키지가 SQL 엔터프라이즈 관리자에서 실행되는 경우와 DTS 패키지가 작업으로 예약되어 실행되는 경우에 나타나는 동작의 차이입니다. SQL 엔터프라이즈 관리자(SEM)의 DTS 디자이너에서 패키지를 실행할 경우, 패키지는 사용자가 위치해 있는 컴퓨터에서 실행됩니다. 사용자가 실제로 또는 원격 액세스 소프트웨어를 통하여 서버에 있는 경우, 패키지는 서버에서 실행됩니다. 사용자가 워크스테이션에 있고 엔터프라이즈 관리자에서 SQL Server 서버에 등록한 경우, 패키지는 워크스테이션에서 실행됩니다. 패키지의 보안 컨텍스트는 해당 컴퓨터에서 로그인할 때 사용한 Windows NT 계정의 보안 컨텍스트입니다. 패키지가 예약된 작업으로 실행될 경우, 해당 패키지는 항상 서버에서 실행됩니다.

개발자는 대개 자신의 워크스테이션에서 엔터프라이즈 관리자의 DTS 디자이너를 사용하여 DTS 패키지를 대화형으로 작성하고 테스트합니다. DTS 패키지 디버그 작업이 완료되면 해당 패키지는 작업으로 예약됩니다. 이렇게 되면 패키지의 위치가 개발자의 워크스테이션에서 서버로 변경됩니다. 패키지가 텍스트 데이터를 SQL Server로 로드하고 있는 경우, 서버에 텍스트 파일과 파일 경로가 없으면 패키지가 실패합니다. 패키지가 다른 서버에 연결하고 있는 경우, 해당 작업의 보안 컨텍스트가 이 연결을 지원하지 않으면 패키지가 실패합니다.

누가 DTS 패키지의 소유자입니까?

SQL 에이전트 서비스에서 관리하는 작업을 만들어 패키지를 예약합니다. 다른 예약된 작업과 마찬가지로 이 작업에도 소유자가 있습니다. SQL Server 로그인이나 또는 Windows NT 계정이 작업을 소유할 수 있습니다.

소유자를 확인하는 방법은 다음과 같습니다.
  • 엔터프라이즈 관리자에서 작업을 두 번 누른 다음 소유자(Owner) 드롭다운 콤보 상자를 확인합니다.

-또는-

  • msdb.dbo.sp_help_job 시스템 저장 프로시저를 실행합니다.
작업이 실행되는 보안 컨텍스트는 작업 소유자가 결정합니다. Sysadmin 서버 역할의 구성원이 아닌 로그인이 해당 작업을 소유하는 경우, 해당 패키지는 SQLAgentCmdExec 계정의 컨텍스트에서 실행되며 해당 계정을 사용할 수 있는 권한을 갖습니다. SQLAgentCmdExec 계정은 일반적으로 로컬 SQL Server 컴퓨터 외부에서는 권한이 없습니다. 따라서 패키지를 Sysadmin 역할의 구성원이 아닌 로그인이 소유하는 작업으로 예약할 경우, 다른 컴퓨터에 연결해야 하는 모든 패키지는 실패합니다.

Sysadmin 역할의 구성원인 계정(SQL Server 로그인 또는 Windows NT 인증된 로그인)이 해당 작업을 소유하는 경우, SQL 에이전트 작업은 SQL 에이전트 서비스를 시작하는 데 사용한 계정 컨텍스트에서 실행됩니다.

또한 Windows NT 도메인 계정이 작업을 소유하고 패키지가 (파일이 아닌 상태로) SQL Server 또는 SQL Server 리포지토리에 저장되어 있는 경우, SQL Server 서비스를 시작해야 같은 도메인의 계정이나 트러스트된 도메인의 계정을 사용해야 합니다. 예를 들어 SQL 에이전트 작업을 USA 도메인의 한 계정이 소유하는 경우, SQL Server 서비스를 시작하는 데 사용되는 계정은 USA 도메인이거나 USA 도메인이 트러스트를 준 도메인에 속해야 합니다. 로컬 계정을 사용하여 SQL Server를 시작할 경우 패키지는 실행되지 않습니다.

소유자를 결정하는 것은 무엇입니까?

질문: 마우스 오른쪽 단추로 DTS 패키지를 누른 다음 패키지 예약을 선택하면, 어떻게 소유자가 지정됩니까? 대답: SQL 에이전트 작업의 소유자는 엔터프라이즈 관리자에서 SQL Server를 등록하는 방식에 따라 결정됩니다. Windows NT 인증을 사용하여 SQL Server를 등록한 경우, 예약된 작업의 소유자는 SQL 에이전트 서비스를 시작하는 데 사용되는 계정입니다. SQL Server 인증을 사용하여 SEM에 SQL Server를 등록할 경우(예: SA 로그인), 해당 작업의 소유자는 같은 SQL Server 로그인입니다.

패키지 소유권 변경 방법은 다음과 같습니다.
  1. 엔터프라이즈 관리자에서 해당 작업을 두 번 누릅니다.
  2. 일반(General) 탭을 누른 다음 소유자(Owner) 드롭다운 콤보 상자를 누릅니다.
msdb.dbo.sp_update_job 시스템 저장 프로시저를 사용하여 패키지 소유권을 변경할 수도 있습니다.

DTS 패키지는 어떻게 시작합니까?

DTSRun.exe 명령줄 유틸리티를 사용하여 패키지를 수동으로 실행하면 보안 컨텍스트는 컴퓨터에 로그인할 때 사용하는 Windows 계정의 보안 컨텍스트입니다. xp_cmdshell 확장 저장 프로시저를 통해 DTSrun.exe를 사용하여 패키지를 실행하는 경우, xp_cmdshell을 실행한 사용자가 Sysadmin 역할의 구성원일 경우 해당 패키지는 SQL Server 서비스를 시작하는 데 사용하는 계정 컨텍스트에서 실행됩니다. xp_cmdshell을 실행한 사용자가 Sysadmin 역할에 없는 계정인 경우, DTSRun.exeSQLAgentCmdExec 계정 컨텍스트에서 실행됩니다.

로컬 시스템 계정을 사용하여 SQL Server를 시작한 경우, DTS 패키지는 SQL Server를 실행 중인 컴퓨터 이외에는 사용 권한이 없습니다.

SQL Server 서비스가 Windows NT 계정으로 시작된 경우, 패키지는 Windows NT 계정과 동일한 사용 권한을 갖습니다. Windows NT 계정이 (도메인 계정의 반대) 로컬 시스템 계정인 경우, 패키지는 해당 컴퓨터 이외에는 다른 컴퓨터에 대해서는 아무 권한도 없습니다. Windows NT 계정이 도메인 계정인 경우, 해당 패키지는 해당 도메인에 속한 많은 다른 컴퓨터의 리소스를 액세스할 수 있습니다.

Windows NT 인증 연결은 어떻게 이루어집니까?

DTS 패키지는 Windows NT 인증을 사용하여 데이터 원본에 연결하는 개체가 포함되는 경우도 있습니다. 이러한 연결에 사용되는 보안 컨텍스트는 실행 중인 패키지의 컨텍스트와 같습니다. DTSRun.exe를 사용하여 명령 프롬프트에서 패키지를 실행하는 경우, 현재 로그인된 Windows NT 계정의 자격 증명이 사용됩니다. 패키지가 SQL Server 에이전트 작업으로 실행되는 경우, SQL 에이전트를 시작하는 데 사용한 계정을 사용하여 통합 보안 연결이 만들어 집니다(패키지 소유자가 Sysadmin 역할의 구성원이라고 가정).

일반적인 질문

다음은 SQL 에이전트에서 DTS 패키지를 예약된 작업으로 실행할 때 발생할 수 있는 다른 일반적인 문제에 대한 설명입니다.

매핑된 드라이브

패키지가 매핑된 드라이브 문자로 지정된 파일의 물리적 위치를 사용하는 경우, 패키지 소유자에 관계 없이 예약된 SQL 에이전트 작업으로 실행되면 실패할 수 있습니다. SQL 에이전트는 Windows NT 서비스이며 이 서비스는 매핑된 드라이브 문자를 볼 수 없습니다. 매핑은 사용자가 Windows NT 세션에 로그온할 때 로드되는 사용자 프로파일에 포함됩니다. 서비스는 사용자 프로파일을 사용하지 않습니다. 매핑된 드라이브 문자 대신 UNC 경로를 사용하십시오.

상대 경로

상대 경로나 드라이브 문자는 패키지의 현재 위치에만 한정된 것입니다(예: C:\). 워크스테이션에서 패키지를 디자인하고 예약한 경우, 패키지가 실행되는 위치가 바뀝니다. 드라이브 문자 경로는 이제 다른 물리적 위치 즉, 서버의 위치를 참조합니다. 또한 참조된 파일을 서버로 이동하지 않는 한, 패키지는 실행되지 않습니다.

ActiveX 스크립트의 COM 구성 요소

Microsoft ActiveX Data Objects(ADO)COM 구성 요소 호출, 원격 데이터 개체(RDO) 또는 의사 결정 지원 개체(DSO)를 ActiveX 스크립트에서 호출할 경우, 호출된 구성 요소는 DTS 패키지가 실행되고 있는 컴퓨터에 있어야 합니다. SEM의 DTS 디자이너에서 패키지를 실행하거나 DTSRun.exe를 실행할 경우, 사용자가 위치하는 컴퓨터에 구성 요소가 있어야 합니다. 패키지가 SQL 에이전트에서 실행되도록 예약되어 있는 경우, 호출된 구성 요소는 SQL Server를 호스트하는 컴퓨터로 로드되어야 합니다.

패키지 보안

DTS 패키지는 소유자 암호와 사용자 암호를 가질 수 있습니다. 이들 암호는 패키지를 편집하고 실행할 수 있는 사용자를 결정합니다. 그러나 패키지가 실행되는 보안 컨텍스트에는 영향을 주지 않습니다.

속성

기술 자료: 269074 - 마지막 검토: 2011년 5월 15일 일요일 - 수정: 4.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
키워드:?
kbsqlmanagementtools kbproductlink kbinfo KB269074

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com