3

私の質問は、単なる技術的な質問ではなく、その実装のセキュリティに関連しています。

私はすべてのレポートを作成し、ReportingServerを使用しています。これらは、ASP.NETのReportViewerコントロールを使用するアプリケーションによって使用されます。

これらのレポートには異なるデータソースが含まれている可能性があるため、レポートのデータソースにパラメーターを作成し、connectionStringアプリケーションをパラメーターとしてレポートに送信しました。

これまでのところすべてが順調ですが、ここで私の質問が発生します。パラメータ用のユーザーとパスワードを持つConnectionStringを使用しているので、ここにセキュリティ上の欠陥はありませんか?

私はあなたからの意見をお願いします、そして誰かがより良い実装方法を持っているなら、私に教えてください。

4

1 に答える 1

7

たぶん、式ベースの接続文字列がここで役立つでしょうか?

ドキュメントにはかなり明確な例があります。つまり、次のような接続文字列です。

="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

これらを使用すると、データソースを定義するためのパラメーターを渡すことができますが、クレデンシャルを個別に保存することもできるため、レポートを呼び出すときにセキュリティの詳細を渡す必要はありません。

コメントの後に追加:

これは、式ベースの接続文字列を使用したレポートの例です。

ここに画像の説明を入力してください

接続文字列がパラメータを使用して、接続している場所を正確に判別していることがわかります。これは、必要に応じて更新できます。

資格情報はデータソースに保存されます。クレデンシャルを保存するか(上のスクリーンショットを参照)、Windows統合セキュリティなどの適切な他のオプションを選択できます。

したがって、完全には適さない場合がありますが、これは、この種の構成可能なデータソース要件に組み込まれたSSRS機能です。

2番目の編集:

上記の例では、Parameters!ServerName.Valueは確かにレポートパラメータであり、他のパラメータと同じように作成します。レポートの起動方法によっては、レポートを非表示のパラメーターにして、コードで送信される実際の値を処理することができます。それは実装の問題であり、実際にはあなた次第です。

式ベースの接続文字列の場合、データソースをレポートに保存する必要があり、その接続文字列は実行時に決定されます。

したがって、1つ以上のパラメーターに基づいて、必要なものを作成できます。これは、作成する文字列値であるため、目的に合わせて作成できます。必要なサーバーとデータベースの組み合わせを指定できます。これで質問に答えられないかどうかを明確にしてください。

于 2013-02-11T12:39:40.460 に答える