문제 해결: SQL Server 에이전트를 사용하여 SSIS 패키지 실행(SQL Server 비디오)

적용 대상: Microsoft SQL Server Integration Services

작성자: 칼라 사보타, Microsoft Corporation

시간: 00:12:12

크기: 9.50MB

형식: WMV

이 비디오 보기

관련 도움말 항목:

SQL Server 에이전트 작업 단계에서 SSIS 패키지를 호출할 때 SSIS 패키지가 실행되지 않는다

dtexec 유틸리티

방법: 패키지 구성 추가

패키지 보호 수준 설정

Integration Services 역할 사용

추가 비디오:

방법: SQL Server 에이전트를 사용하여 SSIS 패키지 실행 자동화(SQL Server 비디오)

비디오 요약

이 비디오에서는 SQL Server 에이전트 작업 단계에서 호출 시 실행되지 않는 SQL Server Integration Services 패키지의 문제를 해결하는 방법을 보여 줍니다. SQL Server 에이전트 외부에서는 이 패키지가 실행됩니다.

비디오 대본

비디오 타임스탬프 오디오

00:00

안녕하세요, 칼라 사보타입니다. 저는 Microsoft SQL Server Integration Services 제품 설명서를 작성하였습니다.

이 비디오에서는 SQL Server 에이전트 작업 단계에서 호출 시 실행되지 않는 SQL Server Integration Services 패키지의 문제를 해결하는 방법을 보여 드리려고 합니다. SQL Server 에이전트 외부에서는 이 패키지가 실행됩니다.

프록시 계정을 만들고 패키지의 ProtectionLevel 속성 설정을 수정하고 중요한 데이터를 패키지 구성 파일에 저장하고, 패키지를 SQL Server msdb 데이터베이스에 저장하는 작업 등과 같이 이 문제를 해결하는 데 권장되는 방법에 대해 알아보겠습니다.

보시는 것처럼 이 작업은 Integration Services 패키지를 실행하지 못했습니다.

SQL Server 에이전트 작업 단계에서 패키지를 호출할 때 패키지가 실행되지 않으면

  • 패키지를 작업 단계로 실행하는 사용자 계정이 원래 패키지 작성자와 다르거나
    또는
  • 사용자 계정에 패키지 외부의 리소스에 액세스하거나 연결을 설정하는 데 필요한 사용 권한이 없는 것입니다.

작업 단계에서 패키지를 호출하는 사용자 계정이 원래 패키지 작성자와 다르면 패키지 보호 수준으로 인해 패키지가 실행되지 않을 수 있습니다. 이것은 사용자 계정이 패키지 또는 패키지에 중요한 데이터의 암호를 해독할 수 없거나 사용자 계정이 패키지에 없는 중요한 데이터를 제공할 수 없기 때문입니다.

중요한 데이터의 예에는 연결 문자열의 암호 부분, 중요한 것으로 표시된 변수 등이 있습니다.

암호화 및 중요한 데이터와 관련된 문제는 다양한 방법으로 해결할 수 있습니다.

01:53

첫 번째 방법은 패키지를 SQL Server msdb 데이터베이스에 저장하고 보호 수준을 액세스 제어에 서버 저장소 및 역할 사용(Rely on server storage and roles for access control)으로 설정하는 것입니다. 이 작업을 수행하려면 SQL Server Management Studio의 Integration Services 서비스를 사용합니다.

이제 데이터베이스 역할이 패키지에 대한 읽기 및 쓰기 권한을 제어합니다. 따라서 패키지의 읽기 역할에 Integration Services 고정 데이터베이스 수준 역할 중 하나를 할당하거나 사용자 정의 데이터베이스 수준 역할을 할당해야 합니다. 고정 데이터베이스 수준 역할은 db_ssisadmin, db_ssisoperator 및 db_ssisltduser입니다. 이 데모에서는 패키지에 db_ssisadmin을 할당하겠습니다.

패키지에 고정 데이터베이스 수준 역할을 할당하는 경우 작업 단계에서 패키지를 호출하는 사용자 계정이 해당 역할의 멤버여야 합니다. 패키지에 사용자 정의 역할을 할당하는 경우에는 사용자 계정이 고정 데이터베이스 수준 역할 중 하나의 멤버이면서 사용자 정의 역할의 멤버여야 합니다.

03:59

두 번째 방법은 Business Intelligence Development Studio에서 패키지의 ProtectionLevel 속성 설정을 EncryptSensitiveWithPassword로 변경하는 것입니다.

패키지의 ProtectionLevel 속성은 패키지 제어 흐름에서 아무 곳이나 클릭한 다음 속성 창에서 ProtectionLevel을 선택하여 액세스합니다.

이제 중요한 데이터의 암호를 해독하는 암호가 포함되도록 SQL Server 에이전트 작업 단계 명령줄을 수정하겠습니다. 암호는 dtexec 명령 프롬프트 유틸리티의 /Decrypt 매개 변수를 사용하여 추가합니다. SQL Server 에이전트 작업 단계는 dtexec 유틸리티를 사용하여 패키지를 실행합니다.

05:22

암호화 및 중요한 데이터와 관련된 문제를 해결하는 세 번째 방법은 다시 Business Intelligence Development Studio를 사용하여 패키지의 ProtectionLevel 속성 설정을 DontSaveSensitive로 변경하는 것입니다.

이 속성 설정을 사용하면 패키지가 암호화되지 않으며 중요한 데이터가 패키지와 함께 저장되지 않습니다. 따라서 패키지 구성 파일을 사용하여 해당 데이터를 저장합니다. 이 데모에서는 DestinationConnectionOLEDB 연결 관리자에 대한 연결 문자열의 암호 부분을 저장하겠습니다.

SQL Server 에이전트 작업 단계가 패키지를 실행하면 만들어진 구성 파일에서 중요한 데이터가 로드됩니다.

이 파일은 보안 폴더에 저장해야 합니다.

지금까지 암호화 및 중요한 데이터와 관련된 문제를 해결하는 방법을 알아보았습니다.

에이전트 작업 단계가 패키지를 실행하지 못하는 결과를 초래하는 또 다른 조건은 사용자 계정 사용 권한과 관련되어 있습니다.

즉, 사용자 계정에 패키지 외부의 리소스에 액세스하거나 연결을 설정하는 데 필요한 사용 권한이 없는 것입니다.

08:08

사용자 계정의 사용 권한을 테스트하려면 명령 프롬프트 창을 열고 RunAs 명령을 실행합니다.

그런 다음 mydomain\myuser를 계정 자격 증명에 저장된 인증 정보로 바꿉니다. 메시지가 나타나면 계정의 암호를 입력합니다.

사용 권한 문제를 해결하려면 필요한 사용 권한이 있는 SQL Server 에이전트 프록시 계정을 만드는 것이 좋습니다. 프록시 계정은 패키지에 있는 중요한 데이터의 암호도 해독합니다.

패키지를 다른 컴퓨터로 이동하는데 패키지의 ProtectionLevel 속성이 EncryptSensitiveWithUserKey 또는 EncryptAllWithUserKey로 설정되어 있는 경우에는 이 방법이 실패할 수 있습니다.

09:12

프록시 계정을 만들려면 sysadmin 고정 서버 역할의 멤버이거나 msdb 데이터베이스에서 SQLAgentOperatorRole, SQLAgentReaderRole 또는 SQLAgentUserRole의 멤버여야 합니다.

프록시 계정은 SQL Server Management Studio에서 새 프록시 계정( New Proxy Account) 대화 상자를 사용하거나 Transact-SQL 쿼리를 실행하여 만듭니다. 여기서는 새 프록시 계정(New Proxy Account) 대화 상자를 사용하겠습니다.

일반(General) 페이지에서 새 프록시 계정의 이름과 자격 증명을 지정합니다. 여기서는 계정의 이름을 Package proxy라고 지정하고 인증 정보가 포함된 User1이라는 기존 자격 증명을 선택하겠습니다.

선택한 자격 증명은 SQL Server 에이전트가 작업을 패키지를 만든 계정이나 필요한 사용 권한이 있는 계정으로 실행할 수 있도록 해야 합니다.

프록시를 사용할 수 있는 하위 시스템도 지정해야 합니다. 작업이 패키지를 실행하므로 SQL Server Integration Services 패키지 하위 시스템을 선택하겠습니다.

프록시 설명은 선택 사항입니다.

보안 주체(Principals) 페이지에서 프록시 계정에 대한 액세스 권한을 부여할 역할을 추가하거나 제거할 수 있습니다. sysadmin 고정 서버 역할의 멤버에게는 자동으로 액세스 권한이 부여됩니다.

프록시 계정에 대해 지정한 User1 자격 증명이 개체 탐색기의 자격 증명(Credentials) 노드 아래에 나열됩니다.

새 자격 증명은 새 자격 증명(New Credentials) 대화 상자를 사용하거나 Transact-SQL 쿼리를 실행하여 만들 수 있습니다.

이 비디오에서는 SQL Server 에이전트 작업 단계에서 호출 시 실행되지 않는 패키지의 문제를 해결하는 방법을 살펴보았습니다. 또한 프록시 계정을 만들고, 패키지의 ProtectionLevel 속성 설정을 수정하고, 중요한 데이터를 패키지 구성 파일에 저장하고, 패키지를 SQL Server msdb 데이터베이스에 저장하는 방법을 살펴보았습니다.

비디오를 시청해 주셔서 감사합니다. 이 비디오가 도움이 되었기를 바라며, 웹 사이트로 돌아가서 다른 Microsoft SQL Server 비디오를 살펴보도록 하겠습니다.