Thomas Bandt

Über mich | Kontakt | Archiv

SQL-Server-Benutzer schon vorhanden ... oder doch nicht?

Eine neue Episode aus dem Märchenbuch eines Entwicklers mit dem Titel Sachen gibt's, die gibts gar nicht.

Ich habe gerade für 2 SQL-Server-2005-Datenbanken eine Spiegelung eingerichtet. Damit diese Datenbanken von Webanwendungen via Windows-Authentifizierung verwendet werden können, habe ich ebenfalls auf beiden (Windows-) Servern entsprechende Benutzer angelegt, da Datenbank und IIS jeweils auf beiden Rechnern laufen. Diese Benutzer habe ich dann entsprechend als Anmeldung am jeweiligen SQL-Server registriert und dann den Datenbanken zugeordnet und die Rolle vergeben.

Seltsamerweise schien das Management Studio die ganze Zeit Benutzer miteinander zu verwechseln - entweder meldete es, ein Benutzer sei schon vorhanden, oder aber ich öffnete einen Benutzer und fand - von mir nie gesetzte - Einstellungen für einen anderen (!) Benutzer in der Zuordnung wieder.

Über den Fehlercode 15063 bin ich dann auf die Stored Procedure sp_helplogins gestoßen, die Erleuchtung brachte. Das Problem ist ein ganz spezieller Benutzer - bzw. genauer zwei davon ...

sp_helplogins 'Server1\WWW_xyz.de'

lieferte folgendes Ergbenis:

LoginName: Server1\WWW_xyz.de
SID: 0x0105000000000005150000007C286D0BD739949A6CFF2D6203040000

Weiterhin (verkürzt):

LoginName: SERVER1\WWW_xyz.de
UserName: SERVER2\WWW2_admin
UserOrAlias: User

Aha!? Der Benutzer Server1\WWW_xyz.de wurde also als SERVER2\WWW2_admin wiedergefunden. Da hat's geklingelt. Die Abfrage der gleichen Stored Procedure für den WWW2_admin auf dem zweiten Server brachte dann das Ergebnis, nämlich die SID dieses Users: 0x0105000000000005150000007C286D0BD739949A6CFF2D6203040000.

Es ist also exakt die gleiche. Ich bin mir nicht 100% sicher, aber ich vermute der Grund liegt darin, dass der zweite Server ein Duplikat des ersten ist (es handelt sich um virtuelle Maschinen). Wir haben also erst den 1. eingerichtet und dass Ding dann dupliziert. Wahrscheinlich tickt in Windows irgendwo eine "Uhr", anhand derer dann auch die ID's für neue Benutzer vergeben werden. Ich habe also heute alle Nutzer neu angelegt, und zufällig, wirklich zufällig haben beide die gleiche ID erwischt

2 Stunden hat der Mist gedauert. Sachen gibt's, die gibt's gar nicht.

Kommentare

  1. TOM_MUE schrieb am Mittwoch, 23. Juli 2008 09:23:00 Uhr:

    Hi Thomas,

    habe leider nicht die Zeit für einen vollen Support ;-) Aber schau dir mal das Tool sysprep von MS an. Damit kannst Du das Windows-BS auf einen PC (ob physikalisch oder virtuell egal) zurücksetzen. Damit wird eine neue SID generiert.
    Also Kurzanleitung:
    - Neue Virtuelle Maschine erstellen.
    - Neue Virtuelle Maschine mit allen globalen Softwareprodukten und Einstellungen versehen.
    - Maschine clonen (FullClone)
    - Auf dem Clone sysprep ausführen.
    - Dann clone starten
    - Dann glücklich sein.

    Das mit den doppelten SID´s musste ich auch selbst erst lernen. Da spielt zum, Beispiel auch der TFS-verrückt wenn sich zwei mit der selben SID anmelden. Mit sysprep kann man noch vel mehr tolle Dinge machen. Schau Dir auf jeden Fall einmal das zugehörige *.chm an.

    Na ja, hoffe das hilft.
    Gruß TOM_MUE
  2. Thomas schrieb am Mittwoch, 23. Juli 2008 09:32:00 Uhr:

    Danke dir, denke ich dann beim nächsten Mal dran. Da es nur ein Benutzer war, hat's geholfen den zu löschen und einfach neu anzulegen, jetzt hat er ne andere ID und alles ist gut.


« Zurück  |  Weiter »