Benutzeranmeldungen und Berechtigungen für eine Datenbank können nach Wiederherstellung der Datenbank falsch sein

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 168001 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D168001
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
168001 User logons and permissions on a database may be incorrect after the database is restored
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Problembeschreibung

Wenn eine Sicherung einer SQL Server-Benutzerdatenbank auf einem anderen SQL Server (wie einem fehlertoleranten Sicherungsserver) oder - nach Neuerstellung oder Neuladen einer alten Version der zentralen Datenbank - auf demselben SQL Server wiederhergestellt wird, sind Benutzeranmeldungen und Berechtigungen für die Datenbank möglicherweise fehlerhaft.

Dieses Problem kann auf unterschiedliche Weise zutage treten:
  • Beim Anmelden bei einem 6.x-Server wird möglicherweise die folgende Fehlermeldung angezeigt:
    Meldung 4002, Ebene 14, Status 1, Server Microsoft SQL Server, Zeile 0
    Anmeldung fehlgeschlagen
    DB-Library: Anmeldung falsch.
  • Beim Anmelden bei einem 7.0.x-Server wird möglicherweise die folgende Fehlermeldung angezeigt:
    Meldung 18456, Ebene 14, Status 1,
    Fehler bei der Anmeldung für den Benutzer '%ls'!
  • Beim Versuch, auf Objekte in der Datenbank zuzugreifen, wird möglicherweise die folgende Fehlermeldung angezeigt:
    Meldung 229, Ebene 14, Status 1,
    Die %s-Berechtigung wurde für das %.*s-Objekt, %.*s-Datenbank, Besitzer %.*s verweigert
  • Beim Versuch, eine Anmeldung zu erstellen und Zugriff auf die wiederhergestellte Datenbank zu gewähren, oder den Benutzer zu der Datenbank hinzuzufügen, wird möglicherweise die folgende Fehlermeldung angezeigt:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Fehler 15023: Der Benutzer oder die Rolle '%s' ist in der aktuellen Datenbank bereits vorhanden.
  • Benutzer verfügen möglicherweise über Berechtigungen für Objekte, für die sie vorher keine Berechtigungen hatten.

Ursache

Die Anmeldeinformationen für den Benutzer werden in der Syslogins-Tabelle in der zentralen Datenbank gespeichert. Wenn Sie den Server wechseln oder diese Information durch Neuerstellung oder Wiederherstellung einer alten Version der zentralen Datenbank ändern, stimmen die Angaben möglicherweise nicht mehr mit den Angaben des Zeitpunkts überein, zu dem die Sicherung der Benutzerdatenbank erstellt wurde. Wenn keine Anmeldungen für die Benutzer existieren und diese versuchen, sich beim Server anzumelden, wird eine Fehlermeldung "Anmeldung fehlgeschlagen" angezeigt. Wenn die Benutzeranmeldungen existieren, die SUID-Werte (für 6.x) oder SID-Werte (für 7.0) in "master..syslogins" und in der Sysusers-Tabelle der Benutzerdatenbank jedoch nicht übereinstimmen, weisen die Benutzer möglicherweise andere Berechtigungen auf als in der Benutzerdatenbank erwartet wird.

Hinweis: Wenn Sie Microsoft SQL Server 2005 verwenden, werden die Tabellen syslogins und sysusers als Kompatibilitätsansichten implementiert. Bei den Ansichten handelt es sich um sys.syslogins und sys.sysusers. Weitere Informationen zu Kompatibilitätsansichten finden Sie unter "Kompatibilitätssichten (Transact-SQL)" in der SQL Server 2005-Onlinedokumentation.

Abhilfe

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen:
  • Wenn aktuelle Skripts zum Hinzufügen von Anmeldungen, Benutzern und Berechtigungen verfügbar sind, verwerfen Sie diese Objekte und erstellen Sie sie mithilfe der Skripts neu. Beispiele für die Verwendung von Skripts zum Übertragen von Anmeldungen zwischen Servern finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
    246133 SO WIRD'S GEMACHT: Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL-Server
    240872 Lösen von Zugriffsproblemen, wenn eine Datenbank auf einen anderen SQL-Server verschoben wird
  • Verwenden Sie die gespeicherte Prozedur "sp_change_users_login", um Beziehungen zwischen den Syslogins-, Sysusers- und Sysalternates-Tabellen neu zu erstellen. Bei dieser Prozedur werden jedoch bestmögliche Schätzungen zu Verknüpfungen vorgenommen, so dass einem Benutzer möglicherweise umfangreichere Zugriffsrechte als beabsichtigt zugewiesen werden. Wenn Sie die Prozedur zunächst mit der Bericht-Option ausführen, wird eine Liste der Benutzer erzeugt, die geändert werden. Anhand dieser Liste sollten Sie überprüfen, ob die betreffenden Benutzer über die korrekten Berechtigungen verfügen. Es ist außerdem zu beachten, dass mit der Prozedur "sp_change_users_login" keine Probleme mit Berechtigungen behoben werden, die sich daraus ergeben, dass Anmeldungen und Benutzer auf der Datenbank, auf der die Sicherung wiederhergestellt wird, in einer anderen Reihenfolge erstellt werden.
  • Erstellen Sie eine Sicherung der zentralen Datenbank von dem Zeitpunkt der Sicherung der Benutzerdatenbank auf dem Server, bevor Sie die Benutzerdatenbank laden. Dadurch wird sichergestellt, dass alle Benutzerinformationen in der Benutzerdatenbank exakt mit den Informationen in der Syslogins-Tabelle in der zentralen Datenbank übereinstimmen.

    Warnung: Die zentrale Datenbank enthält serverweite Informationen und wirkt sich auf alle Datenbanken auf dem Server aus. Wenn Sie die zentrale Datenbank wiederherstellen, kann es vorkommen, dass weitere Benutzer-IDs und/oder Datenbanken verlorengehen oder unkorrekte Berechtigungen aufweisen. Alle Änderungen an der zentralen Datenbank, die seit dem Zeitpunkt der Sicherung erfolgt sind, gehen verloren. Verwenden Sie diese Methode nur, wenn Sie sicher sind, dass die Sicherungsversion der zentralen Datenbank exakte Informationen für die fragliche Benutzerdatenbank und alle anderen Datenbanken auf dem Server enthält.
  • Verwenden Sie den Transfer Manager (für 6.x) oder DTS (für 7.0), um die Anmeldungen zu kopieren. Dabei ist zu beachten, dass mit dieser Methode die Kennwörter nicht übertragen werden.
  • Wenden Sie sich an Ihre primäre Supportstelle.

Eigenschaften

Artikel-ID: 168001 - Geändert am: Donnerstag, 24. August 2006 - Version: 5.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Keywords: 
kbprb kbusage KB168001
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com