2012-07-03 2 views
1

MySQL 데이터베이스에서 데이터를 가져 와서 SQL Server 테이블에 넣는 SSIS 패키지가 있습니다. MySQL에 대한 연결은 ADO.net입니다. 패키지는 BIDS에서 정상적으로 실행됩니다.SSIS 패키지가 암호 또는 xml 구성 또는 테이블 구성을 사용하여 SQL Server 에이전트에서 실행되지 않음

SQL Server 2008에서 작업으로 실행되도록 패키지를 배포하고 싶습니다. MySQL 연결을 사용하려면 중요한 데이터가 패키지 내에 저장되거나 일부 외부 구성 소스에 보관되어야합니다. 패키지 내에 저장되어있는 경우 내 Windows 사용자 프로필과 관련된 키로 암호화되거나 암호를 통해 보호되어야합니다.

나는이 pacakge를 실행하는 SQL Server 에이전트 작업을 설정하는 세 가지 방법을 시도하고, 모든 실패 :

내가 EncryptSensitiveWithPassword 및 공급에 패키지의 ProtectionLevel을 설정 암호

사용 패키지 암호. 그런 다음 패키지 복사본을 msdb에 저장합니다. 그런 다음 SSIS에 연결하고 패키지를 실행하면 암호를 입력하라는 메시지가 나타납니다.

SQL Server에서이 작업을 예약하려고하면 작업 단계 속성의 구성 탭을 클릭하여 암호를 입력하라는 메시지가 나타나고/DECRYPT 스위치가 명령 줄에 추가 된 것을 볼 수 있습니다 탭. 실행 속성은 sysadmin 서버 역할을 가진 데이터베이스 로그인에 매핑되는 SQL Server 에이전트 서비스 계정으로 설정됩니다. 나는 다음과 같은 오류가이 일을 시작하려고 할 때 :

Executed as user: DOMAIN\UserROLE. Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 12:31:30 Error: 2012-07-03 12:31:31.20  Code: 0xC00291EC  Source: Get Data Execute SQL Task  Description: Failed to acquire connection "DATA_SOURCE". Connection may not be configured correctly or you may not have the right permissions on this connection. End Error DTExec: The package execution returned DTSER_FAILURE 

이 작업이 액세스하는 패키지 암호 자체가이 방법을 사용하는 것은 어디에도 저장되지 않는 것 같습니다. XML 구성 파일

를 사용

나는 그 패키지의 복사본을 생성하고 DontSaveSensitive에 ProtectionLevel을 설정하고 나는 XML 파일에서 MySQL의 자격 증명을 저장하는 패키지 구성을 설정합니다. 그런 다음이 파일을 msdb에 저장 한 다음 Integration Services에서 패키지를 실행하면 구성 파일에 대한 경로를 제공 할 수 있으며 모두 정상입니다. 그러나 패키지에 대한 작업을 설정하면 서버의 구성 파일을 가리키지 만 작업은 동일한 오류로 실패합니다. SQL Server Agent에 파일 시스템에 저장된 XML 파일에서 읽을 수있는 관련 Windows 계정이 없기 때문에이 문제가 발생한 것인지 궁금합니다. SQL Server 테이블 구성

I 패키지의 복사본을 생성 ServerStorage에 ProtectionLevel 설정이 시간을 사용

. 그런 다음 대상 SQL Server 데이터베이스에 [SSIS 구성] 테이블을 만들었습니다. 이 테이블의 항목을 수정하여 MySQL 데이터 소스의 비밀번호를 포함 시켰습니다. 다시 패키지는 Integration Services에서 성공적으로 실행되지만 이전에 작업에서 실행될 때와 동일한 오류로 실패합니다. SQL Server Agent가 [SSIS Configurations] 테이블에서 읽을 수 있는지 확인했습니다.이 테스트를 위해 독립 실행 형 작업을 설정했습니다.

내가 여기에서 무엇을해야하는지에 대한 제안이있는 사람이 있습니까?

나는 이것을 위해 SQL Server Agent Jobs를 포기하고 단순히 Windows 스케줄러에 의해 스케줄 된 패키지로 돌아갈 생각이 있지만 수건을 던지기 전에 먼저 여기에서 시도해 볼 것입니다.

답변

0

위의 내용대로 암호를 EncryptSensitiveWithPassword으로 설정하여 암호를 암호화하는 방법을 사용하고 있으며 잘못된 것을 보지 못했습니다. 통합 서비스를 사용하여 패키지를 가져올 때 옵션 keep protection level of the original package을 사용하는 것을 잊지 마십시오.하지만 그렇게하는 것처럼 보입니다.

역할을 SQLAgentOperatorRole으로 설정하여 SQL Server 에이전트 서비스 계정에 설정하려고하면 그 사실을 언급하지 않았으므로 확실하지 않습니다. 이렇게하면 권한 문제가 해결 될 수 있습니다. (이 질문에 대답하는 것을 좋아하지만 여기에도 사용 권한이 부족합니다. :)

+0

Thanks stb. SQLAgentOperatorRole에 관한 제안을 시도했지만 원하는 효과를 얻지 못했을 것 같습니다. 이미 원본 패키지의 보호 수준을 유지하면서 패키지를 가져오고 있습니다. – cjashwell

+1

문제와 관련하여 '일반적인 문제 해결'동영상을 찾았습니다. 어쩌면이 도움이 될 것입니다 : http://technet.microsoft.com/en-us/sqlserver/ff686900.aspx – stb

+0

다시 한번 감사드립니다. @stb 실제로 비디오를 보았습니다. 그리고 꼭보아야 할 중요한 비트의 세부 사항을 놓쳤습니다! 나는 그 효과에 MS에게 약간의 피드백을 주었다. 나는 이것을 포기하고 Windows 스케줄러를 사용하여 패키지를 예약 할 것입니다. 어쨌든 당신의 시간을 이해하십시오. – cjashwell

관련 문제