1 votes

Techniques pour maintenir la synchronisation des identifiants et des mots de passe entre deux serveurs de données dans Sybase ASE.

Sybase ASE 12.5.4

Comme le titre l'indique, je cherche un moyen pour que la création d'un login ou la modification de son mot de passe sur le serveur de données A se fasse également sur le serveur de données B, et vice-versa.

Serait-il possible de remplacer master..syslogins sur B avec une proxy_table pointant sur A ? J'ai essayé mais je n'ai pas pu supprimer les syslogins locaux (ce qui causerait probablement des ravages de toute façon).

D'autres suggestions ?

0voto

Jorge Pinho Points 1208

Une façon de garder les syslogins synchronisés est simplement de les envoyer par bcp entre les serveurs de données, mais vous devrez le faire à chaque fois qu'un mot de passe est changé. L'exécuter régulièrement à partir de cron peut être suffisant.

Si vous configurez l'authentification via un serveur LDAP cela permettrait de synchroniser les mots de passe, mais je n'ai pas utilisé cette fonction et je ne sais pas exactement comment les changements de mot de passe sont gérés.

0 votes

Il semblerait que je vais faire appel à la vieille école et à la planification des syslogins (avec divers contrôles et logiques) en tant que tâche planifiée. LDAP est exclu, car nous ne voulons pas que les utilisateurs puissent accéder via le client de ligne de commande SQL.

0voto

paxdiablo Points 341644

BCP fonctionne, vous devez mettre l'option de configuration "autoriser les mises à jour des tables système" à 1. Il est aussi plus sûr de laisser tranquille les premiers suidés (sa, probe etc).

Une technique plus avancée consiste à réécrire sp_addlogin et sp_password pour effectuer cette synchronisation à votre place. Mais il s'agit de procédures système, il est donc préférable d'écrire un wrapper et de l'appeler, qui peut à son tour appeler les sprocs système sur chaque serveur. Je suppose que cela dépend de la façon dont vos utilisateurs changent de mot de passe.

Il s'agit d'un vieux problème dans la réplication sybase (en particulier la veille à chaud), il existe donc de nombreuses options.

S'il s'agit d'une solution de secours à chaud, vous devez vous assurer que le suid d'un nom de connexion particulier est toujours le même sur chaque serveur, car c'est le seul lien avec le compte utilisateur réel dans la base de données. Les autorisations de la base de données sont à leur tour liées au compte d'utilisateur. Si vous mélangez les suids, vous pouvez avoir des permissions différentes sur les serveurs A et B.

0 votes

En fait, j'ai essayé d'utiliser sp_extrapwdchecks, que Sybase appelle automatiquement lorsque sp_password est appelé. J'ai essayé d'appeler l'autre serveur de données et d'y effectuer le changement de mot de passe, mais il n'a pas voulu se connecter (bien que je puisse me connecter correctement en utilisant la commande connect to ).

0voto

Voici les étapes à suivre. 1) Enlevez les données de B...master..syslogins. (côté le plus sûr). 2) Supprimez par BCP les syslogins A..master..du serveur A (sauf sa login). 3) Supprimez les données de B..master..syslogins (sauf sa login) et réintroduisez les données en activant l'option allow updates. Une fois que BCP est fait, vous pouvez le désactiver. Cela fonctionnera si vous pouvez écrire et tester un script.

Merci Naveen.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X