レポートサービスとアプリケーションロール


25

最初のポスター、長い時間はここに潜んでいます。レポートでアプリケーションロールをアクティブにする最良の方法は何ですか?

私はさまざまなことを試しましたが、これまでのところ、動作する唯一の方法は、そのようなアプリケーションロールへの呼び出しを埋め込むことです:-

EXEC sp_setapprole 'REPORTZ', 's3cr3t';
select *
from mytable
where ID < 10000

データセット内。それは機能します...しかし、私の好みではありません(私は実稼働環境にロールバックしたい形ではありません)。

カスタムアセンブリまたはレポートサービスのいずれかの種類の「サーバーフック」を介して、実行時にアプリケーションロールのアクティベーションラインを何らかの方法で「ハイジャック」または「インジェクト」できることを希望します(どちらの場合も、 )

あなたの時間と親切な注意に感謝します。

YS。


2
ここからmsdn.microsoft.com/en-us/library/aa237582(v=SQL.80).aspxから開始して、Reporting Serviceを拡張する方法(アプリケーションロールを設定するコードを挿入する)を理解できますが、このコメントは受け付けません。答えとして、これが本当に最も簡単な方法であり、構成で行うことができなかったと確信していない

ユーザーがこのレポートにアクセスする方法に応じて、データセットにレポートユーザーの資格情報を埋め込み、ログインSQLサーバー側を設定して、制限された権限を持つようにすることができます。
-DForck42

こんにちはDForck-システム全体はapproleに基づいていたので、そのままにしておきたいと思います。

回答:


3

私は、これを過度に派手なものに頼ることなく行うことができるいくつかの方法を考えています。

  1. 1つ目は、Windows統合認証を使用して、アプリケーションのユーザーを表すグループにアクセス許可を割り当てることです。

  2. 付与できるロールを作成し、それを使用set roleしてdbのコードでロールを引き受けることができます。この方法では、パスワードを渡さずに、最初にアプリケーションを認証しています。

最初の利点は、ADドメインでアプリケーションにアクセスできる管理が簡単なことです。管理は比較的簡単です。主な欠点は、統合認証が理にかなっている場合に限定され、統合認証を最後までサポートする必要があることです。さらに、すべてのホップは3方向認証(サーバー、クライアント、KDC間)を必要とします。

2番目の利点は、おそらく最も簡単にシムインできることです。また、ネットワーク経由でセキュリティ情報を公開せず、統合認証がうまく機能しない場合に機能します。

レポートサービスを拡張しようとする前に、これらのアプローチの両方を試します。コメントが示唆したように、http://msdn.microsoft.com/en-us/library/aa237582%28v=SQL.80%29.aspxは役立つ可能性がありますが、役割を管理しようとするよりも概念的に複雑です直接。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.