レポート サービスを実行している SQL 2008 R2 サーバーがあり、特定の資格情報を使用してデータ ソースに接続するレポートを特定したいと考えています。この場合、レポートは、SQL サーバー上でレポートを実行するための適切なセキュリティを持つ特定のユーザー アカウントを持つカスタム データ ソースを使用して、データ ソースに接続します。
計画は、[ReportServer].[dbo].[Catalog] にクエリを実行してレポートのリストを取得することでした。次に、以下のコードを実行して、関心のある資格情報を使用してレポートを特定します。これはすべて SSIS パッケージで行われます。
ReportingService API を使用すると、共有データ ソースの接続文字列にある資格情報のユーザー名を読み取ることができます。コードを以下に示します。ただし、私の場合、共有データ ソースではなく、レポートに固有のカスタム データ ソースからデータ ソース資格情報を読み込む必要があります。GetDataSourceContents メソッドはこれをサポートしていないようです。共有データ ソースの代わりにレポート名とパスを指定すると、エラーが発生します。
これにアプローチする別の方法はありますか?何百ものレポートがあるため、UI を使用してこの情報を調べることは現実的ではありません。
前もって感謝します。
注: 「web_service」は、レポート サーバーへの Web サービス参照です (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