1

SSRS レポート サーバーへの無効なデータ ソース ログインを含む多くのレポートを追加しました。各レポートを個別に更新する必要がないように、スクリプトを使用してユーザー名とパスワードを更新したいと考えていました。

ただし、フィールドは画像として保存され、暗号化されていることがわかります。それらがどのように暗号化されているか、またはそれらを更新する方法については何もわかりません。ユーザー名とパスワードは dbo.DataSource テーブルに保存されているようです。何か案は?スクリプトを SQL で実行したい。

ログイン情報の例:

レポート マネージャーの例

4

2 に答える 2

2

私は、Reporting Services のテーブルをハッキングすることに非常に、非常に、非常に慎重です。誰かがあなたが提案したことを実行するための信頼できる方法を提供できるかもしれませんが、インストール全体を破壊する良い方法だと私は思います.

私の提案は、Reporting Services API を利用して、これを行うための小さなアプリを作成することです。API は非常にフル機能であり、Report Manager Web サイトから実行できるほとんどすべてのことを API で実行でき、使い方も非常に簡単です。

次のコードは、レポートを共有データ ソースにポイントするという目的を正確に果たすものではありませんが、実行する必要がある基本事項を示しているはずです。

    public void ReassignDataSources()
    {
        using (ReportingService2005 client = new ReportingService2005)
        {
            var reports = client.ListChildren(FolderName, true).Where(ci => ci.Type == ItemTypeEnum.Report);

            foreach (var report in reports)
            {
                SetServerDataSource(client, report.Path);
            }
        }
    }

    private void SetServerDataSource(ReportingService2005 client, string reportPath)
    {
        var itemSources = client.GetItemDataSources(reportPath);
        if (itemSources.Any())
            client.SetItemDataSources(
                reportPath,
                new DataSource[] { 
                        new DataSource() { 
                            Item = CreateServerDataSourceReference(), 
                            Name = itemSources.First().Name 
                        } 
                    });
    }

    private DataSourceDefinitionOrReference CreateServerDataSourceReference()
    {
        return new DataSourceReference() { Reference = _DataSourcePath };
    }
于 2013-01-28T23:35:48.963 に答える
1

これがあなたの質問に直接答えているとは思えませんが、何らかの助けになることを願っています. 資格情報を指定する MSDN

MSDN も、まさにこの理由で共有データ ソースの使用を推奨しています。共有データ ソースに関する MSDN を参照してください。

于 2013-01-28T23:15:45.503 に答える