1

これは私のチームと私が助けを求めてインターネットを探し回っている質問ですが、ほとんど成功していません. (私たちの考えでは) 一般的な状況のように思えますが、最善のアプローチに焦点を合わせることは、多くの人にとって非常に役立つ可能性があります。

.NET コードを使用してかなり細かいレベルでデータ アクセスを制御する ASP.NET アプリケーションがあります。つまり、ユーザー テーブル、ロール テーブル、セキュリティ テーブル、ワークフロー テーブル、そして多数のビジネス データ テーブルがあります。ビジネス データへのアクセスは、エンド ユーザーがアプリケーションで直接ユーザー アカウントとセキュリティを自己管理できるため、高度に構成可能です。私たちの .NET C# コードは、(Windows ログインに基づいて) 特定の要求に資格があるデータを決定し、それを提供します。SQL Server ログイン/ロールを使用した関連するビジネス セキュリティはありません。

では、.NET コードを使用してリレーショナル データで定義されたデータ アクセスをプログラムで強制するシステムに SSRS を実装するにはどうすればよいでしょうか。

ソリューションは次のいずれかのようになると思います。

[SSRS レポート] > [データソース] > データ アクセスを制御する .NET コード > [SQL Server]
...または...
[SSRS レポート] > データ アクセスを制御する .NET コード > [データソース] > [SQL Server] ]

これが正しい場合、これを可能にするために欠けている技術やコンセプトは何ですか?

どのソリューションも、次の重要な要件を満たす必要があります。

  1. ビジネス パワー ユーザー (レポート作成者) は、レポート ビルダー 3.0 を使用して SSRS レポートを作成できる必要があります。データセット デザイン ビューとクエリ デザイナーを使用して、ビジネス データとリレーションシップを引き続き操作できる必要があります。
  2. ビジネス パワー ユーザー (レポート作成者) は、レポートまたはデータ クエリにデータ アクセスを実装する必要はありません。レポートのデザインだけを考えればよいのです。
  3. レポートにアクセスするエンド ユーザー (レポート コンシューマー) は、特定のアクセス レベルに基づいてレポート内のフィルター処理されたデータ (.NET コードによって行われる) を取得します。

他の誰かが .NET コードを使用してデータ アクセスを管理しているのではないでしょうか。このシナリオでは SSRS を使用できませんか?

ありがとう!

4

2 に答える 2

1

ASP.Net MVC アプリケーションについても、RESTful Web サービスが XML または JSON データをフロントエンド アプリケーションに返す同様の状況があります。

レポートのために、これらの同じコントローラーを呼び出して同じデータを取得したいと考えました。幸いなことに、SSRS は驚くほど拡張可能です。ASP.Net MVC コントローラーを呼び出してデータを返すカスタム データ処理拡張機能を作成しました。このデータは、レポートで使用するためにデータセットに逆シリアル化されます。

私のクエリは次のようになります。

Action=SomeAction;Controller=ControllerName;DtoType=List<MyDto>

些細なことではありませんが、思ったほど難しくはありません。カスタム データ処理拡張機能を実装することは、問題を解決する良い方法です。始めるためのオンラインの例がたくさんあります。

于 2013-05-08T02:43:18.933 に答える
0

SSRS はデータベースに非常に近いため、うまく機能します。データベースとそれ自体の間に .NET レイヤーを挿入しようとしてもうまくいきません。

データベースにユーザー、ロール、およびセキュリティ テーブルがあり、 SSRS はWindows ユーザーのUser!UserID を通知します。データ アクセス ロジックを再実装する場合は、UserID を引数として受け取り、返されたデータをフィルター処理する T/SQL ストアド プロシージャを作成できます。ストアド プロシージャは、レポートのデータセットです。

ビジネスのパワー ユーザーに独自のレポートを作成する機能を与えるのは、もう少し難しくなります。これは、これらのパワー ユーザーがレポートを作成するときに使用する一般的なデータセットを返す一連のストアド プロシージャを実装することで実現できます。プロシージャは、基になるテーブル データに対してフィルター処理されたビューとして機能します。レポートの利用者が結果のレポートを実行すると、自分の UserID に従ってフィルター処理されたデータが表示されます。

于 2013-05-07T15:00:49.160 に答える