2011-04-25 49 views
1

我们公司有46座建筑物,我们希望编写报告,让所有建筑物都能看到他们的数据。我们有46个AD组我们为其他应用程序创建。我想要做的是填充完整的建筑物名称的下拉参数,但只能根据您在AD中的访问权限来显示它们。AD,SSRS和参数下拉菜单

示例: Administrator1有权访问Building1。他在第一组。
Administrator1有权访问Building2。他在第二组。
Regional1有权访问建筑物1-5。她在group1,group2,group3,group4和group5中 Exec1可以访问所有建筑物。她在所有的群体中。

Exec1会看到所有的建筑物,管理员只有他们的建筑物和地区的建筑群。我可以使用这些人在查看报告时基于查找的值填充参数下拉列表吗?

回答

1

我已经使用了几种方法来解决类似问题: 首先为包含用户ID的报告创建一个内部参数。 “= User!UserID” 接下来,您需要获得加入的权限。如果您有用户在SQL中的某处组/权限映射,这是最简单的。那么这只是一个SQL连接。

否则,您可以设置一个Active Directory“Linked Server”,它可以为AD组查询AD成员。这可能需要一定的耐心和故障排除时间。一旦建立,您可以加入每个组的成员资格。

如果我正在构建您所描述的内容,我将编写一个AD到SQL数据导出以定期运行(.NET .exe),使SQL表保持最新的权限。这将更容易设置,并且比SQL-> AD链接服务器更健壮。

我可以找到链接服务器的方法引用如果这将是有益的......

+0

hmm,所以你创建一个链接服务器,定期填写一个包含结果的表,然后根据它查询那个连接和一个权限表? (对不起,打回来太快)我如何确定他们是谁?我们通过获取他们的角色组,在dotnetnuke中完成了它。我只是不知道如何获取信息,当他们来到页面。 – 2011-04-25 22:19:24

+0

取决于你对性能有多敏感,并且有46个组,我不知道如何构建查询,但我已根据组名按需按主动查询SP中的链接服务器以生成报告。实时保存结果以实现安全更改,但会降低一点。使用此查询的结果填充参数可用选项。 – 2011-04-26 01:03:18

+0

[http://www.mssqltips.com/tip.asp?tip=1657]上有一篇文章展示了如何将AD用户和组导入到SQL中,我用它来做同样的事情(在报表中映射) – thomasswilliams 2011-04-27 06:21:51

0

如果你在AD和环上有mathching正则表达式的结果memberOf属性,我认为你可以建立你的组合。