2010-03-03 4 views
2

Dans le cadre d'un projet visant à créer un outil pour interroger toutes sortes d'autorisations pertinentes pour les utilisateurs de notre domaine, je dois informations sur nos serveurs de bases de données. Les serveurs exécutent SQL Server 2005 (y compris les instances de Analysis Services 2005). Je dois être en mesure de trouver pour un serveur donné:Liste des droits/rôles sur MS SQL Server 2005 et Analysis Services à l'aide de Perl (ou PHP)

  • La liste des connexions sur ce serveur
  • La liste des rôles sur ce serveur
  • Ce que chaque rôle a droit à
  • Qui est dans chaque rôle (ou pour chaque connexion, à quels rôles appartient-il - fonctionne de toute façon)

L'application est actuellement écrite en Perl, donc si vous connaissez des techniques à utiliser pour interroger cette information en utilisant Perl, je wo Je serais très reconnaissant. Le seul autre langage d'application avec lequel je peux travailler est PHP, mais cela doit être évité pour des raisons de cohérence, dans la mesure du possible.

Répondre

0

Je n'ai pas beaucoup de connaissances sur SSAS, donc je vais laisser cette partie de la question à quelqu'un avec l'expérience appropriée.

Pour 1, 2 et 4, vous devriez pouvoir utiliser les system stored procs sp_helplogins, sp_helprole et sp_helprolemember. Vous pouvez également obtenir l'appartenance au rôle à partir de la vue sys.database_role_members. Dans la mesure où les utilisateurs/rôles ont accès, la vue sys.database_permissions contient ces données. Aucune méthode spécifique à perl n'est nécessaire, juste vos instructions select et exec normales.

Il peut être utile de lire quelques minutes les entrées en ligne de la documentation sur les vues système, les tables système et les procédures système stockées, qui renverront les données souhaitées sous différentes formes.

Questions connexes