Настройка параметров безопасности для применения удаленных вызовов процедур (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-адреса или полного доменного имени.
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 18483 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{9CF46B83-7BD2-49D5-A987-B24FCB6FD0D7}';MOM2012GroupID={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.2012.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>