Ich musste mehrere SQL Server 2008-Datenbanken auf unseren neuen Datenbankserver verschieben, um sie alle zu sichern (in .bak-Dateien), diese Dateien in die neue Box zu kopieren und wiederherzustellen (alles mit SQL Management Studio).
Alles ging in Ordnung, aber jetzt kann ich mich mit dem SQL Server-Konto, das weiterhin auf dem alten RDBMS funktioniert, bei keiner der Datenbanken anmelden. Mein Windows-authentifizierter Login funktioniert übrigens immer noch einwandfrei.
Ich hatte die Idee, dass die Benutzer und Berechtigungen nahtlos auf den neuen Datenbankserver dupliziert werden, aber es scheint, dass irgendwo etwas schief gelaufen ist. Ich würde mich über Kommentare / Vorschläge / Hilfsangebote freuen ;-)
Dies wird als "verwaiste Benutzer" bezeichnet. Hier sind 2 Möglichkeiten, dies zu beheben
Wenn Sie können, stellen Sie die ursprüngliche Masterdatenbank als "Anmeldequelle" wieder her, und sys.server_principals verfügt über genügend Informationen, um alle SQL Server- und Windows-Anmeldungen zu generieren. Das heißt, die SIDs und das verschlüsselte Passwort
Wenn Sie nur Windows-Anmeldungen verwenden, können Sie diese pro Datenbank ausführen, um ein Skript zu generieren
Skript:
quelle
Idealerweise würden Sie die Benutzer und Berechtigungen vor der Wiederherstellung ausschreiben. Wenn dies nicht geschehen ist, müssen Sie die Dinge nachträglich reparieren, und es besteht die Möglichkeit, dass etwas übersehen wird, aber Sie sollten in der Lage sein, etwa 90% des Weges dorthin zu schaffen.
Als erstes müssen Sie feststellen, ob auf dem neuen Server dieselben Anmeldungen vorhanden sind. Wenn dies nicht der Fall ist, sollten Sie herausfinden, ob die Anmeldungen auf dem neuen Server erstellt werden können. Gehen Sie niemals davon aus, dass sie erstellt werden sollten, es könnte einen guten Grund dafür geben, warum sie überhaupt nicht existierten. Sie können sie dann erstellen, indem Sie die Sysuser-Tabelle durchsuchen.
Sie können die verwaisten Benutzer reparieren, indem Sie Folgendes ausführen:
Dieser Code funktioniert für SQL2008, wurde jedoch so geschrieben, dass er für SQL2000 abwärtskompatibel ist.
quelle
Sie können auf die folgende URL verweisen, um die Datenbankbenutzerberechtigungen zu korrigieren
http://mywindowsblog.com/?p=287
quelle
Hier ist ein kurzer Artikel, der die Lösung erklärt:
Wiederherstellen verwaister Anmeldungen in SQL Server nach dem Wiederherstellen der Datenbank
quelle