Freigeben über


MSSQLSERVER_18483

Gilt für: SQL Server

Details

attribute Wert
Produktname SQL Server
Ereignis-ID 18483
Ereignisquelle MSSQLSERVER
Komponente SQLEngine
Symbolischer Name REMLOGIN_INVALID_USER
Meldungstext Zum Server "%.ls" konnte keine Verbindung hergestellt werden, weil "%.ls" nicht für die Remoteanmeldung auf dem Server definiert ist. Überprüfen Sie, ob Sie den richtigen Anmeldenamen angegeben haben. %.*ls.

Erklärung

Dieser Fehler tritt auf, wenn Sie versuchen, einen Replikationsverteiler auf einem System zu konfigurieren, das mit dem Festplattenimage eines anderen Computers wiederhergestellt wurde, auf dem die SQL-Instanz ursprünglich installiert war. Dem Benutzer wird eine Fehlermeldung angezeigt, die der folgenden ähnelt:

SQL Server Management Studio konnte '<Serverinstanz>><' nicht als Distributor für '<Serverinstanz><>' konfigurieren. Fehler 18483: Es konnte keine Verbindung mit der Serverinstanz<><> hergestellt werden, da "distributor_admin" nicht als Remoteanmeldung auf dem Server definiert ist. Überprüfen Sie, ob Sie den richtigen Anmeldenamen angegeben haben. %.*ls.

Ursache

Wenn Sie SQL Server von einem Festplattenimage eines anderen Computers bereitstellen, auf dem SQL Server installiert ist, wird der Netzwerkname des imageierten Computers in der neuen Installation beibehalten. Der falsche Netzwerkname führt dazu, dass die Konfiguration des Replikationsverteilers fehlschlägt. Das gleiche Problem tritt auf, wenn Sie den Computer umbenennen, nachdem SQL Server installiert wurde.

Aktion des Benutzers

Um dieses Problem zu umgehen, ersetzen Sie den SQL Server-Servernamen durch den richtigen Netzwerknamen des Computers. Führen Sie dazu die folgenden Schritte aus:

  1. Melden Sie sich am Computer an, auf dem Sie SQL Server aus dem Datenträgerimage bereitgestellt haben, und führen Sie dann die folgende Transact-SQL-Anweisung in SSMS aus:

    -- Use the Master database
    USE master
    GO
    
    -- Declare local variables
    DECLARE @serverproperty_servername varchar(100),
    @servername varchar(100);
    
    -- Get the value returned by the SERVERPROPERTY system function
    SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'));
    
    -- Get the value returned by @@SERVERNAME global variable
    SELECT @servername = CONVERT(varchar(100), @@SERVERNAME);
    
    -- Drop the server with incorrect name
    EXEC sp_dropserver @server=@servername;
    
    -- Add the correct server as a local server
    EXEC sp_addserver @server=@serverproperty_servername, @local='local';
    
  2. Starten Sie den Computer neu, auf dem SQL Server ausgeführt wird.

  3. Führen Sie die folgende Transact-SQL-Anweisung aus, um zu überprüfen, ob der SQL Server-Name und der Netzwerkname des Computers identisch sind:

    SELECT @@SERVERNAME, SERVERPROPERTY('ServerName');
    

Weitere Informationen

Sie können die @@SERVERNAME globale Variable oder die SERVERPROPERTYFunktion ('ServerName') in SQL Server verwenden, um den Netzwerknamen des Computers zu suchen, auf dem SQL Server ausgeführt wird. Die ServerName-Eigenschaft der SERVERPROPERTY Funktion meldet automatisch die Änderung des Netzwerknamens des Computers, wenn Sie den Computer und den SQL Server-Dienst neu starten. Die @@SERVERNAME globale Variable behält den ursprünglichen SQL Server-Computernamen bei, bis der SQL Server-Name manuell zurückgesetzt wird.

Schritte zum Reproduzieren des Problems

Führen Sie auf dem Computer, auf dem Sie SQL Server aus einem Datenträgerimage bereitgestellt haben, die folgenden Schritte aus:

  1. Starten Sie Management Studio.

  2. Erweitern Sie im Objekt-Explorer den Namen der SQL Server-Instanz.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Replikation, und klicken Sie auf Replikation „Verteilung konfigurieren“ und dann auf Veröffentlichung, Abonnenten und Verteilung konfigurieren.

  4. Klicken Sie im Dialogfeld des Assistenten Verteilung konfigurieren auf Weiter.

  5. Klicken Sie im Dialogfeld "Distributor" auf die Option "<Serverinstanz><>" als eigener Distributor; SQL Server erstellt eine Verteilungsdatenbank und ein Protokoll-Optionsfeld, und klicken Sie dann auf "Weiter".

  6. Klicken Sie im Dialogfeld SQL Server-Agent, Start auf Weiter.

  7. Klicken Sie im Dialogfeld Momentaufnahmeordner auf Weiter.

    Hinweis

    Wenn Sie eine Meldung zur Bestätigung des Pfads des Momentaufnahmeordners erhalten, klicken Sie auf Ja.

  8. Klicken Sie im Dialogfeld Verteilungsdatenbank auf Weiter.

  9. Klicken Sie im Dialogfeld Verleger auf Weiter.

  10. Klicken Sie im Dialogfeld Aktionen des Assistenten auf Weiter.

  11. Klicken Sie im Dialogfeld Assistenten abschließen auf Fertig stellen.

Weitere Informationen