2013-06-12 1 views
0

보고 서비스를 실행하는 SQL 2008 R2 서버가 있고 특정 자격 증명을 사용하여 데이터 원본에 연결하는 보고서를 확인하고 싶습니다. 이 경우 보고서는 보고서를 실행하기 위해 SQL Server에 적절한 보안이있는 특정 사용자 계정으로 사용자 지정 데이터 원본을 사용하여 데이터 원본에 연결됩니다.ReportingService API를 사용하여 사용자 지정 데이터 원본 자격 증명 읽기

[ReportServer]. [dbo]. [Catalog]를 쿼리하여 보고서 목록을 가져 오는 것이 계획이었습니다. 그런 다음 아래 코드를 실행하여 관심있는 자격 증명을 사용하여 보고서를 확인하십시오.이 모든 작업은 SSIS 패키지에서 수행됩니다.

ReportingService API를 사용하여 공유 데이터 원본의 연결 문자열에서 자격 증명의 사용자 이름을 읽을 수 있습니다. 코드는 다음과 같습니다. 그러나 필자의 경우 공유 데이터 소스가 아닌 보고서의 사용자 지정 데이터 소스에서 데이터 소스 자격 증명을로드해야합니다. GetDataSourceContents 메서드는 이것을 지원하지 않는 것 같습니다. 공유 데이터 소스 대신 보고서 이름 & 경로를 제공하면 오류가 발생합니다.

다른 접근 방법이 있습니까? 우리는 수백 가지의 보고서를 가지고 있기 때문에이 정보를보기 위해 UI를 사용하는 것은 비실용적입니다.

미리 감사드립니다.

참고 : "web_service"는 보고서 서버에 웹 서비스 참조입니다 (HTTP : // [서버] /ReportServer/ReportService2005.asmx?WSDL)

Dim rs As New web_service.ReportingService2005() 
rs.Credentials = System.Net.CredentialCache.DefaultCredentials 

Dim ds_def As web_service.DataSourceDefinition 

ds_def = rs.GetDataSourceContents("/Data Sources/data_source_1") 

With MyCredentialsOutputBuffer 
    .AddRow() 
    .UserName = ds_def.UserName 
End With 

답변

0

당신은 RDL을 풀다운해야합니다 내용과 구문 분석 :(

포함 된 데이터 원본 정보가 .rdl에 저장하지 공유 데이터 설정 항목이 API를 통해 얻을. 심지어 다음 데이터 소스 암호를 검색 할 수 없습니다.

+0

ReportServer.dbo .DataSource 테이블에는 특정 보고서에 대한 사용자 지정 데이터 원본에 대한 데이터가 들어 있습니다. 바이너리로 자격 증명 인 것으로 보이는 항목은 제외됩니다. 이로 인해 사용자 지정 데이터 원본 자격 증명이 RDL 보고서 정의 파일 외부에 저장되었다고 생각하게되었습니다. 그러나 rdl 파일을 살펴 보겠습니다. –

+0

업데이트 : rdl 파일을 구문 분석하는 것처럼 보이지 않아 작동하지 않는 것 같습니다. rdl 파일은 공유 데이터 원본을 가리 킵니다. 나는 이것을 BIDS에서 보는 것을 확인했다. 그러나 보고서 서버에 대한 보고서는 사용자 지정 데이터 원본을 사용합니다. 실제 사용자 지정 데이터 원본 연결 문자열과 자격 증명은 ReportServer.dbo.DataSource 테이블에 저장됩니다. 이것에 접근 할 방법이없는 것처럼 보입니다. –

관련 문제