PRB: "Problembehandlung bei verwaisten Benutzer" in der Onlinedokumentation ist unvollständig

Problembeschreibung

Wenn Sie eine Sicherung auf einem anderen Server wiederherstellen, auftreten ein Problem mit verwaisten Benutzern. Problembehandlung bei verwaisten Benutzern Thema in der SQL Server-Onlinedokumentation ist nicht die genauen Schritte zur Behandlung des Problems beschreiben.

Dieser Artikel beschreibt, wie Sie verwaiste Benutzer beheben können.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Weitere Informationen

Obwohl die Begriffe Anmelde- und häufig synonym verwendet werden, sind sehr unterschiedlich. Ein Benutzername für die Authentifizierung verwendet und ein für die Validierung der Datenbank und Berechtigungen verwendet. Benutzernamen werden durch die Sicherheits-ID (SID) den Benutzern zugeordnet. Ein Benutzername ist erforderlich für den Zugriff auf den SQL Server-Server. Die Gültigkeit überprüfen, ein bestimmten Benutzernamen ist "Authentifizierung" bezeichnet. Diese Anmeldung muss eine SQL Server-Datenbankbenutzer zugeordnet werden. Sie verwenden das Benutzerkonto Aktivitäten in der Datenbank zu steuern. Wenn für einen bestimmten Benutzernamen in einer Datenbank kein Benutzerkonto vorhanden ist, kann nicht der Benutzer, der mit diesem anmelden, obwohl der Benutzer Verbindung zum SQL Server-Server möglicherweise die Datenbank zugreifen. Die einzige Ausnahme dazu ist wenn die Datenbank das Benutzerkonto "Gast". Ein Benutzername, der nicht über ein zugeordnetes Benutzerkonto verfügt wird auf den Benutzer Guest zugeordnet. Dagegen ist ein Datenbankbenutzer ist vorhanden, aber keine Anmeldung verbunden, Benutzer nicht SQL Server-Server anmelden.


Beim Wiederherstellen einer Datenbank auf einem anderen Server es enthält eine Reihe von Benutzern und Berechtigungen, aber möglicherweise entsprechenden Benutzernamen oder Benutzernamen nicht dieselben Benutzer zugeordnet werden. Diese Bedingung gilt als müssen "verwaiste Benutzer."

Problembehandlung bei verwaisten Benutzern

Wenn Sie eine Sicherung auf einem anderen Server wiederherstellen, auftreten ein Problem mit verwaisten Benutzern. Das folgende Szenario veranschaulicht das Problem und wie es zu lösen.
  1. Der master-Datenbank einen Benutzernamen hinzu, und geben Sie die Standarddatenbank als Northwind:
    Use master go sp_addlogin 'test', 'password', 'Northwind'
  2. Zugriff auf den soeben erstellten Benutzer gewähren:
    Use Northwind go sp_grantdbaccess 'test'
  3. Sichern Sie die Datenbank.
    BACKUP DATABASE NorthwindTO DISK = 'C:\MSSQL\BACKUP\Northwind.bak'

  4. Wiederherstellen der Datenbank auf einen anderen SQL Server-Server:
    RESTORE DATABASE NorthwindFROM DISK = 'C:\MSSQL\BACKUP\Northwind.bak'

    Die wiederhergestellte Datenbank enthält einen Benutzer namens "test" ohne entsprechenden Benutzernamen in "Testergebnisse" verwaist.
  5. Um verwaiste Benutzer erkennen, führen Sie diesen Code an:
    Use Northwind go sp_change_users_login 'report'
    Die Ausgabe enthält alle Benutzernamen, die ein Konflikt zwischen den Einträgen in der Systemtabelle Sysusers der Datenbank Northwind und Sysxlogins -Systemtabelle in der master-Datenbank verfügen.

Schritte zur Problembehandlung bei verwaisten Benutzern

  1. Führen Sie den folgenden Befehl für den verwaisten Benutzer aus dem vorherigen Schritt:
    Use Northwindgo
    sp_change_users_login 'update_one', 'test', 'test'

    Diese Wiederherstellung der Server- Anmeldung "Test" mit der Northwind-Datenbank Benutzer "Test". Die Standardwert gespeicherte Prozedur kann auch eine Aktualisierung aller verwaiste Benutzer mit dem Parameter "Auto_fix" ausführen, aber wird nicht empfohlen, da SQL Server versucht, Benutzernamen und Benutzer nach Namen. In den meisten Fällen funktioniert; Wenn der falsche Benutzername einem Benutzer zugeordnet ist, kann ein Benutzer falsche Berechtigungen haben.
  2. Nachdem Sie den Code im vorherigen Schritt ausführen, kann der Benutzer auf die Datenbank zugreifen. Der Benutzer kann dann das Kennwort der Sp_password gespeicherten Prozedur ändern:
    Use master go
    sp_password NULL, 'ok', 'test'

    Diese gespeicherte Prozedur kann für Microsoft Windows NT-Sicherheitskonten verwendet werden. Benutzer mit einem SQL Server-Server über ihr Windows NT-Netzwerkkonto werden durch Windows NT authentifiziert. Deshalb können ihre Kennwörter nur unter Windows NT geändert werden.


    Nur Mitglieder der Sysadmin-Rolle können das Kennwort für die Anmeldung eines anderen Benutzers ändern.

Referenzen

Weitere Informationen Zugriffsproblemen beim Verschieben einer Datenbank zwischen Servern finden Sie der Microsoft Knowledge Base:

240872 INF: lösen Berechtigung, wenn eine Datenbank verschoben zwischen SQL Server wird
Eigenschaften

Artikelnummer: 274188 – Letzte Überarbeitung: 10.01.2017 – Revision: 1

Feedback