2011-04-25 3 views
1

Nous avons 46 bâtiments dans notre société et nous voulons écrire des rapports qui permettent à tous les bâtiments de voir leurs données. Nous avons créé 46 groupes AD pour une autre application. Ce que je voudrais faire est de remplir un paramètre de liste déroulante plein des noms de bâtiment, mais seulement les montrer en fonction de votre accès dans AD. Par exemple: Administrator1 a accès à Building1. Il est en groupe1.
Administrator1 a accès à Building2. Il est dans le groupe 2.
Regional1 a accès aux bâtiments 1-5. Elle est dans group1, group2, group3, group4 et group5 Exec1 a accès à tous les bâtiments. Elle est dans tous les groupes. Exec1 verrait tous les bâtiments, Admins seulement leurs bâtiments et Régional le groupe de bâtiments. Puis-je remplir un menu déroulant de paramètres avec uniquement les valeurs que ces personnes ont basées sur une recherche lorsqu'elles ont atteint le rapport?listes déroulantes AD, SSRS et paramètres

Répondre

1

Je l'ai utilisé deux méthodes pour résoudre des problèmes similaires: d'abord créer un paramètre interne pour le rapport qui contiendra l'identifiant de l'utilisateur. "= User! UserID" Ensuite, vous devez obtenir les autorisations jointes. Ceci est plus facile si vous avez l'utilisateur à un mappage de groupe/permission quelque part dans SQL. Alors c'est juste une jointure SQL. Dans le cas contraire, vous pouvez configurer un "serveur lié" Active Directory qui peut interroger AD pour les membres du groupe. Cela peut prendre un peu de patience et de temps de dépannage. Une fois mis en place, vous pouvez vous joindre à l'adhésion de chaque groupe. Si je construisais ce que vous décrivez, je coderais une exportation de données AD vers SQL pour l'exécuter à intervalles réguliers (un .NET .exe), en gardant une table SQL à jour avec les permissions. Ce serait plus facile à mettre en place et plus robuste que le serveur SQL-> AD Linked.

Je peux trouver les références de l'approche du serveur lié si cela serait utile ...

+0

hmm, de sorte que vous créez un serveur lié, le frappez périodiquement en remplissant une table avec les résultats, et interrogez la jointure de cela et une table d'autorisations basée sur quoi? (désolé, appuyez sur retour trop rapidement) Comment puis-je déterminer qui ils sont? Nous l'avons fait dans dotnetnuke en obtenant leurs groupes de rôles. Je ne sais pas comment saisir l'information quand ils viennent à la page. –

+0

Dépend de votre sensibilité aux performances et avec 46 groupes, je ne suis pas sûr de la façon dont je structurerais la requête, mais j'ai activement interrogé le serveur lié dans mon SP par nom de groupe à la demande pour générer le rapport . Conserve les résultats en temps réel pour les changements de sécurité, mais ralentit un peu les choses. Utilisez les résultats de cette requête pour remplir vos choix de paramètres disponibles. –

+0

Il y a un article à [http://www.mssqltips.com/tip.asp?tip=1657] qui montre comment importer des utilisateurs et des groupes AD dans SQL, j'ai utilisé ceci pour faire la même chose (mappage dans les rapports) – thomasswilliams

0

Si vous obtenez le memberOf attribut AD et boucle sur le résultat d'une expression régulière mathching, je pense que vous pouvez construire votre combo.

Questions connexes