2009-06-30 10 views
2

Je souhaite synchroniser ma base de données utilisateur avec les utilisateurs et les groupes du répertoire actif. Mon application lit les objets de AD et les copie dans la base de données mais devient obsolète à mesure que les modifications AD.Synchronisation de la base de données à partir d'Active Directory

Y at-il un moyen que je peux obtenir le répertoire actif pour m'avertir quand un objet est changé? L'exemple de code C# serait génial.

Fábio

P.S. J'utilise une base de données Oracle

Répondre

2

Les notifications AD n'existent pas. Il suffit de tirer les données toutes les N minutes.

1

À l'heure actuelle, il n'y a aucun moyen pour que AD vous avertisse lorsque quelque chose change - vous devriez juste faire un rafraîchissement de temps en temps. Vous pouvez définir quelque chose qui tire une copie de AD et la compare à votre copie actuelle, en mettant à jour uniquement ce qui est nécessaire, mais vous devez en extraire une copie entière dans les deux cas.

2

Les comptes d'utilisateur ActiveDirectory possèdent les attributs 'whenCreated' et 'whenChanged'. Si vous synchronisez un grand nombre de comptes d'utilisateurs et si les performances sont problématiques, vous pouvez interroger ActiveDirectory et filtrer uniquement les enregistrements qui ont été modifiés depuis la dernière synchronisation réussie.

La syntaxe de ces attributs est (Le Z capital à la fin est obligatoire et indique le temps zoulou, qui est le même que GMT):

YYYY MM DD HH mm ss.s Z 
2009 06 30 00 00 00.0 Z 

Pour rechercher tous les utilisateurs créés à partir Juin 30 2009 vous pouvez utiliser cette requête LDAP:

(&(objectClass=User)(whenChanged>=20090630000000.0Z)) 

le code faisant la synchronisation devra être responsable de l'exploitation forestière de la dernière fois synchornization cependant.

+0

Le code effectuant la synchronisation, au lieu de se connecter lors de la dernière exécution de la synchronisation, pouvait simplement utiliser la date du dernier événement de la table en tant que proxy - ce qui lui permettrait de saisir tous les événements depuis le dernier. votre réplique. – SqlRyan

Questions connexes