2016-06-29 2 views
0

현재 데이터 기반 구독으로 여러 SSRS 보고서 (2014 버전 사용)를 구현 중입니다.SSRS 데이터 기반 구독 - 감사/로깅 구현 방법

작업이 실행될 때마다 보고서를 보낼 전자 메일 주소와 사용 된 매개 변수에 대한 정보를 저장해야합니다.

몇 가지 유용한 정보를 얻을 수 있습니다. ReportServer.dbo.ExecutionLog2보기에서 실행 시작 및 종료 시간, 매개 변수 등을 검색하면 전자 메일 주소의 메타 데이터를 저장하는 DB의 어느 위치에서도 찾을 수 없습니다.

누구든지이 정보를 얻고 요구 사항을 충족시킬 수있는 방법을 생각할 수 있습니까?

미리 감사드립니다.

답변

0

ReportServer 데이터베이스의 Subscriptions 테이블에있는 ExtensionSettings 필드에 정보가 있습니다. 유일한 아래 부분은 모두 XML입니다. 그러나 이메일 주소와 그로부터 가입에 관한 모든 것을 가져올 수 있습니다. 다음은 예제 쿼리입니다. 구독을 찾거나 문제를 해결할 때 자주 사용합니다.

SELECT A.SubscriptionID, A.Report_OID, B.Name, [Path], 
A.LastRunTime, A.Description, C.UserName AS Owner, A.LastStatus, A.ExtensionSettings 
FROM Subscriptions A INNER JOIN Catalog B 
ON A.Report_OID = B.ItemID 
INNER JOIN Users C 
ON A.OwnerID = C.UserID 
WHERE A.ExtensionSettings LIKE '%[email protected]%' 
ORDER BY A.LastRunTime DESC 

주의해야이 정기적으로 구독 좋은 작품 ... 데이터 기반 구독이 분야에서 일부 데이터를 가지고 있지만,별로, 누가와 DDS의 무엇 때문에 실행 실행에 따라 다를 수 있습니다.

데이터 기반 구독에 대한 제안은 구독 데이터를 구동하는 데 사용하는 쿼리에 감사 코드를 추가하는 것입니다. 쿼리가 아직 저장되지 않은 경우 저장 프로 시저로 만들고 일부 로깅을 추가하여 수행 할 작업을 캡처합니다. 구독 전송에 성공했다고 가정합니다.

여러 가지를 수행하는 경우 정보를 전달하고 로깅을 수행하는 로깅/감사 저장 프로 시저를 작성하십시오. 여러 시스템에 이러한 데이터 소스가있는 경우 한 서버에서 로깅을 중앙 집중화하고 연결된 서버를 사용하여 프로 시저를 호출 할 수 있습니다. 일부 DBA는이를 저지 할 수도 있지만 작동 할 것입니다.

+0

답변 해 주셔서 감사합니다. 나는 당신 생각과 똑같은 생각을 가지고있었습니다. 그러나 불행하게도 경고는 무엇을 어디에서 (어떤 이메일 주소) 보내 었는지를 감사하는 것입니다. 이것은 가능한가? 또는 SSRS 제한? – iKnowNothing

+0

SSRS 및 보고서 구독을 통해이를 수행하는 방법을 알지 못합니다. 아마도 이메일 서버에서 감사하는 방법이 있을까요? 한 가지 다른 방법으로 보고서 결과를 파일 시스템에 기록하고 SQL 에이전트 작업을 사용하여 첨부 파일로 전자 메일로 보냅니다. 작업에서 보내기를 감사하십시오. 귀엽고 가능한 유지 보수의 악몽은 아니지만 요구 사항을 만족시킬 것입니다. –

+0

나는 이것이 아주 오래되었다는 것을 안다. 나는 이것에 대한 해답을 찾고있다. 내가 지금해온 것은 구독을 제공하는 proc에 의해 생성 된 행을 저장하는 자체 로그 테이블을 업데이트하는 것입니다. 실제로 이메일이 전송되었다고 말하지는 않지만 적어도 런타임시 구성된 이메일 주소를 알고 있는지는 알고 있습니다. 알았어, 더 많은 수색에. – John

관련 문제