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

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, будет выведено это сообщение об ошибке. Оно также возникает, если у удаленного пользователя обнаруживается неопределенное (NULL) или пустое имя для входа.

Решения

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

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

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

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

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

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Вкл.

Включает или отключает рабочий процесс.

Да

Приоритет

Определяет приоритет предупреждения.

1

Серьезность

Определяет серьезность предупреждения.

1

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>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>