2011-07-06 5 views
13

特定のSSRSレポートにアクセスする権限を持つログイン/ユーザーをプログラムで決定する方法はありますか?SSRS - ReportServerデータベーステーブルを使用してレポートのアクセス許可を決定しますか?

誰が特定のレポートにアクセスできるかを確認したいマネージャーのためのレポートを作成するために、データマートを作成したいと考えています。現在、Active Directoryグループにアクセス許可を割り当てています。これらのアクセス許可グループは、SQL ServerとSSRSでアクセス許可を判断するために使用されます。 SSRSのメタデータ内にアクセス許可がどのようにレポートに割り当てられているかを追跡するテーブルがあるかどうかを知りたい。

答えて

22

これは、あなたのニーズに合わせて微調整することができ、あなたが望むもののほとんどを行うスクリプトです:

select C.UserName, D.RoleName, D.Description, E.Path, E.Name 
from dbo.PolicyUserRole A 
    inner join dbo.Policies B on A.PolicyID = B.PolicyID 
    inner join dbo.Users C on A.UserID = C.UserID 
    inner join dbo.Roles D on A.RoleID = D.RoleID 
    inner join dbo.Catalog E on A.PolicyID = E.PolicyID 
order by C.UserName 

あなたは上記のスクリプトが動作するSSRS SQLレポートサーバー

+0

ありがとう、私はこのようなものを探していた。 –

+1

このクエリでは、dbo.Policies(B)は不要です。 –

+0

古くなったロールを持つレポートを検索するのに適しています。 – JsonStatham

0

上でスクリプトを実行することができますただし、削除されたユーザー、つまり時には混乱する可能性のあるActive Directoryにも存在しないユーザーも表示されることに注意してください。

また、Microsoftでは、ReportServerデータベースに対するクエリを正式にサポートしていません。

+0

GetPolicies()メソッドを使用して、適切な権限を取得できます。このポストを参照してください http://www.bi-rootdata.com/2015/03/list-ssrs-items-permissions-using.html – Aftab

関連する問題