0

レポート サービスを実行している 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
4

1 に答える 1

0

rdl コンテンツをプルダウンして解析する必要があります:(

埋め込まれたデータ ソース情報は、API 経由で取得される共有データ セット アイテムではなく、.rdl に格納されます。それでも、データ ソースのパスワードを取得することはできません。

于 2013-06-12T01:50:21.183 に答える