MSSQL 2016: Es konnte keine Verbindung zum Server hergestellt werden, da diese nicht als Remote-Anmeldung am Server definiert ist

Microsoft.SQLServer.2016.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule (Rule)

Beim Einrichten der Sicherheitseinstellungen zum Ausführen von Remoteprozeduraufrufen (Remote Procedure Calls, RPC) für Remoteserver werden auch Zuordnungen von Anmeldenamen auf dem Remoteserver und möglicherweise auch auf dem lokalen Server festgelegt, auf dem eine Instanz von Microsoft SQL Server ausgeführt wird. Die Zuordnung bezieht sich auf einen bestimmten Server- oder Instanznamen. In der Regel handelt es sich dabei um den NetBIOS-Namen für eine Standardinstanz und den NetBIOS-Namen sowie den Instanznamen für eine benannte Instanz. Dieser Fehler wird angezeigt, wenn die Anmeldenamenzuordnung nicht vorhanden ist oder wenn der in der Verbindungszeichenfolge angegebene Servername nicht mit dem genauen Namen in der sysremotelogins>-Tabelle übereinstimmt und für das Gastkonto in der sysremotelogins-Tabelle keine Zuordnung besteht. Dieser Fehler wird außerdem angezeigt, wenn der Anmeldename für den Remotebenutzer Null oder leer ist.

Knowledge Base article:

Zusammenfassung

Beim Einrichten der Sicherheitseinstellungen zum Ausführen von Remoteprozeduraufrufen (Remote Procedure Calls, RPC) für Remoteserver werden auch Zuordnungen von Anmeldenamen auf dem Remoteserver und möglicherweise auch auf dem lokalen Server festgelegt, auf dem eine Instanz von Microsoft SQL Server ausgeführt wird. Die Zuordnung bezieht sich auf einen bestimmten Server- oder Instanznamen. In der Regel handelt es sich dabei um den NetBIOS-Namen für eine Standardinstanz und den NetBIOS-Namen sowie den Instanznamen für eine benannte Instanz. Dieser Fehler wird angezeigt, wenn die Anmeldenamenzuordnung nicht vorhanden ist oder wenn der in der Verbindungszeichenfolge angegebene Servername nicht mit dem genauen Namen in der sysremotelogins-Tabelle übereinstimmt und für das Gastkonto in der sysremotelogins-Tabelle keine Zuordnung besteht. Dieser Fehler wird außerdem angezeigt, wenn der Anmeldename für den Remotebenutzer NULL oder leer ist.

Lösungen

Bei der Replikation werden Verbindungen zum Verteiler, Verleger und Abonnenten mithilfe von Remoteserverdefinitionen hergestellt. Wenn Sie die Replikation aktivieren und konfigurieren, erstellen Sie implizit Remoteserver und fügen Zuordnungen zu Anmeldenamen für diese SQL Server-Remoteinstanzen hinzu. In Replikationsverbindungszeichenfolgen wird immer der NetBios-Name für eine Standardinstanz und der NetBIOS-Name sowie der Instanzname für eine benannte Instanz angegeben. Daher findet bzw. verwendet die Replikation keine Remoteservernamen, die für IP-Adressen oder vollqualifizierte Domänennamen definiert wurden. Der oben angegebene Fehler wird angezeigt, wenn der NetBIOS-Name beim Replikationsverbindungsversuch nicht in der sysremotelogins-Tabelle gefunden wird.

Die Microsoft SQL Server-Replikation wird unterstützt, wenn die beteiligten Server durch einen NetBIOS-(Netzwerk-)Namen registriert sind, nicht jedoch, wenn die beteiligten Server durch eine IP-Adresse oder einen vollqualifizierten Domänennamen registriert sind. Weitere Informationen zum Replizieren von Daten zwischen Computern, auf denen SQL Server in nicht vertrauenswürdigen Domänen oder über das Internet ausgeführt wird, finden Sie im Microsoft Knowledge Base-Artikel 321822.

Hinweis Die Unterstützung für Remoteserver wird nur für Abwärtskompatibilität angeboten. Für neue Anwendungen, die gespeicherte Prozeduren für SQL Server-Remoteinstanzen ausführen müssen, müssen verknüpfte Server verwendet werden.

Wenn einer der an der Abfrage beteiligten oder bei der Replikation verwendeten Server zu irgendeinem Zeitpunkt umbenannt oder er aus einem Image erstellt wurde, müssen Sie sicherstellen, dass der NetBIOS-(Netzwerk-)Name mit der Computerangabe in @@SERVERNAME für den Computer mit SQL Server übereinstimmt. Wenn diese Namen nicht übereinstimmten, führen Sie die Schritte im Abschnitt zum Umbenennen von Servern in der Onlinedokumentation durch (in SP3 aktualisiert), um den Wert von @@SERVERNAME zu aktualisieren. Für diese Änderung ist kein Neustart der SQL Server-Instanz erforderlich. Weitere Informationen zu den Ursachen für ein fehlgeschlagenes Einrichten der Replikation bei der Bereitstellung von SQL Server 2000 mithilfe eines Datenträger-Images finden Sie im Microsoft Knowledge Base-Artikel 818334.

Wenn dieser Fehler während der Replikation auftritt, überprüfen Sie, ob der Verteiler, Verleger und Abonnent mithilfe des NetBIOS-Namens (Netzwerknamens) konfiguriert wurde, und nicht mit der IP-Adresse oder dem vollqualifizierten Domänennamen.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID18483
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: Es konnte keine Verbindung zum Server hergestellt werden, da diese nicht als Remote-Anmeldung am Server definiert ist
{0}
Event LogApplication
CommentMom2016ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>18483</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>