Не удалось подключиться к серверу, так как он не определен как удаленное имя входа на сервере

Microsoft.SQLServer.2008.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule (Rule)

Knowledge Base article:

Сводка

Настройка параметров безопасности для применения удаленных вызовов процедур (RPC) к удаленному серверу включает настройку сопоставления имен входа на удаленном сервере и, возможно, на локальном сервере, на котором выполняется экземпляр Microsoft SQL Server. Такое сопоставление характерно для заданного имени вида "сервер\экземпляр", обычно это имя NetBIOS для экземпляра по умолчанию и имя NetBIOS плюс имя экземпляра для именованного экземпляра. Если данное сопоставление имен не существует или если имя севера, указанное в строке подключения, не имеет точного соответствия имени в таблице sysremotelogins, а с учетной записью гостя ничего не сопоставлено в таблице sysremotelogins, будет выведено это сообщение об ошибке. Это сообщение об ошибке также возникает, если у удаленного пользователя обнаруживается неопределенное или пустое имя входа.

Решения

В репликации определения удаленного сервера используются для подключения к распространителю, издателю и подписчику. При активации и настройке репликации явно создаются удаленные серверы и добавляются сопоставления имен входа для этих экземпляров удаленного SQL Server. В строках подключений репликации всегда указывается имя NetBios для экземпляра по умолчанию и имя NetBIOS плюс имя экземпляра для именованного экземпляра. Поэтому при репликации не будут найдены или использованы имена удаленных серверов, которые определены для IP-адресов или полных доменных имен. Описанное выше сообщение об ошибке возникает, если при попытке подключения репликации не удается найти имя NetBIOS в таблице sysremotelogins.

Репликация Microsoft SQL Server поддерживается, если вовлеченные серверы зарегистрированы по (сетевому) имени NetBIOS, но не по IP-адресу или полному доменному имени. Дополнительные сведения о репликации между компьютерами, на которых запущен SQL Server, в недоверенных доменах или в Интернете см. в статье 321822 базы знаний Майкрософт.

Примечание. Поддержка удаленных серверов предоставляется только для обратной совместимости. Вместо этого новые приложения, которые должны применять хранимые процедуры к удаленным экземплярам SQL Server, должны использовать связанные серверы.

Если какие-либо серверы из вовлеченных в обработку запроса или из используемых в репликации были ранее переименованы или созданы из образа, то необходимо убедиться в том, что их (сетевые) имена NetBIOS в @@SERVERNAME совпадают с частью, соответствующей компьютеру SQL Server. Если они не совпадают, то следуйте инструкциям раздела "Переименование сервера" электронной документации (обновленной — SP3), чтобы обновить значение параметра @@SERVERNAME. Для внесения таких изменений не требуется перезапускать данный экземпляр SQL Server. Дополнительные сведения о причинах неудачной настройки репликации, если SQL Server 2000 развернут с помощью образа диска, см. в статье базы знаний Майкрософт 818334.

Если эта ошибка возникает во время репликации, проверьте, чтобы распространитель, издатель и подписчик были настроены с помощью (сетевого) имени NetBIOS, а не IP-адреса или полного доменного имени.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID18483
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Не удалось подключиться к серверу, так как он не определен как удаленное имя входа на сервере
{0}
Event LogApplication
CommentMom2008ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.2008.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>