Ошибка "Системное сообщение 5003 — не удается открыть указанную серверную базу данных" при попытке входа в Microsoft Dynamics SL

В этой статье описаны способы устранения ошибки, возникающей при попытке входа в Microsoft Business Solutions — Solomon или Microsoft Dynamics SL.

Применимо к: Microsoft Dynamics SL
Исходный номер базы знаний: 875704

Симптомы

При попытке войти в Microsoft Business Solutions — Solomon или Microsoft Dynamics SL появляется следующее сообщение об ошибке:

Системное сообщение 5003 — не удается открыть указанную серверную базу данных

Причина

Эта проблема возникает по одной или нескольким из следующих причин.

Причина 1

Значение servername в таблице доменов в системной базе данных Microsoft Dynamics SL не соответствует имени экземпляра SQL Server, содержащего базы данных Microsoft Dynamics SL. См . решение 1.

Причина 2

Псевдоним в служебной программе клиентской сети указывает на старый сервер. Убедитесь, что в служебной программе клиентской сети указан правильный псевдоним. См . решение 2.

Причина 3

Протокол именованных каналов и протокол TCP/IP не включены в служебной программе клиентской сети. См . решение 3.

Причина 4

При попытке войти в новую базу данных приложения Microsoft Dynamics SL и имя базы данных начинается с числа, отображается ошибка. Так как в SQL Server есть ограничение, имена баз данных должны начинаться с алфавита. См . решение 4.

Причина 5

Невозможно установить подключение именованных каналов к серверу, так как у вас недостаточно разрешений Windows. См . решение 5.

Причина 6

TCP/IP настроен неправильно. См . решение 6.

Причина 7

База данных настроена в режиме Single-User. См . резолюцию 7.

Причина 8

Файл Capicom.dll на компьютере, на котором получена ошибка, поврежден или указана неправильная версия. См . резолюцию 8.

Причина 9

Брандмауэр Windows на SQL Server блокирует доступ к базам данных SQL Server/SL. См . решение 9.

Причина 10

Вы используете модель безопасности проверки подлинности Windows в Microsoft Dynamics SL. Однако вы не связали идентификатор пользователя в Microsoft Dynamics SL с идентификатором пользователя в Windows. Кроме того, вы вручную создали тот же идентификатор пользователя в системной базе данных Microsoft Dynamics SL в SQL Server. См . решение 10.

Причина 11

Учетная запись пользователя Microsoft Dynamics SL является членом группы АДМИНИСТРАТОРЫ в Microsoft Dynamics SL. Однако связанная учетная запись пользователя домена Windows не является членом роли sysadmin в SQL Server. См . резолюцию 11 и резолюцию 12.

Причина 12

Брандмауэр Windows в Windows Server 2008 R2 блокирует доступ к базам данных SQL Server/SL. См . решение 13.

Причина 13

Происходит на экране Поиск базы данных (98.000.01) при выборе базы данных приложения в поле Имя базы данных. См . резолюцию 14.

Причина 14

Происходит на экране Найти базу данных (98.000.01), когда после выбора имени сервера и имени базы данных нажмите кнопку ОК . См . резолюцию 15.

Решение

Чтобы устранить эту проблему, используйте соответствующее решение.

Решение 1

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

  1. В SQL Server Management Studio выполните следующую инструкцию в системной базе данных Microsoft Dynamics SL.

    Select servername, * from domain
    
  2. Если значение servername не совпадает с именем экземпляра SQL Server, выполните следующую инструкцию, чтобы обновить значение servername:

    UPDATE Domain SET ServerName = '<Nameofserver>'
    --Replace the <Nameofserver> placeholder with the instance name of SQL Server.
    
  3. Войдите в обслуживание базы данных.

  4. На вкладке Обновление баз данных выберите системную базу данных Microsoft Dynamics SL и все связанные базы данных приложений, а затем выберите Обновить представления.

Решение 2

Удалите псевдоним, ссылающийся на старый сервер. Для этого выполните следующие действия:

  1. Нажмите кнопку Пуск, выберите Выполнить, введите cliconfg и нажмите клавишу ВВОД.
  2. На вкладке Псевдоним убедитесь, что все перечисленные псевдонимы правильные и предназначены для текущих серверов. Если какой-либо из псевдонимов относится к старым серверам, используйте указатель, чтобы поместить фокус на тот, который требуется удалить, а затем нажмите кнопку Удалить.
  3. Нажмите ОК.

На 32-разрядном компьютере:
Перейти к запуску>Тип выполнения>cliconfg

На 64-разрядном компьютере:

  1. Перейти к C:\Windows\SysWOW64
  2. Запуск cliconfg.exe, расположенных в этой папке

Решение 3

Убедитесь, что в программе клиентской сети включены именованные каналы и TCP/IP.

  1. Нажмите кнопку Пуск, выберите Выполнить, введите cliconfg и нажмите клавишу ВВОД.

  2. На вкладке Общие убедитесь, что протокол именованных каналов и протокол TCP/IP отображаются в разделе Включенные протоколы по порядку. Если эти протоколы не включены, используйте указатель, чтобы сосредоточиться на каждом из них, а затем выберите Включить.

  3. Если протокол именованных каналов не является первым протоколом в списке, выберите протокол именованных каналов и используйте клавиши со стрелками, чтобы переместить его.

  4. Нажмите ОК.

    Примечание.

    Как правило, не существует рекомендаций относительно того, какой протокол следует загрузить в первую очередь. В зависимости от конфигураций сети один протокол может работать лучше, чем другой.

На 32-разрядном компьютере:

  1. Перейти к запуску>Тип выполнения>cliconfg
  2. Убедитесь, что включены именованные каналы и TCP/IP.

На 64-разрядном компьютере:

  1. Перейдите к .C:\Windows\SysWOW64
  2. Запуск cliconfg.exe, расположенных в этой папке
  3. Убедитесь, что включены именованные каналы и TCP/IP.

Решение 4

Создайте резервную копию существующего приложения Microsoft Dynamics SL и системных баз данных, а затем восстановите базы данных на том же сервере с помощью альфа-имен баз данных.

Примечание.

На шаге 4 обязательно восстановите базу данных в том же SQL Server.

Решение 5

Предоставьте пользователю достаточные разрешения в Windows.

Примечание.

SQL Server не удается прочитать параметры реестра, чтобы установить подключение по именованной каналу, так как у пользователя недостаточно разрешений в Windows. Обратитесь за помощью к администратору сетевой системы.

Решение 6

Убедитесь, что TCP/IP настроен правильно.

  1. Если для назначения IP-адресов используется DHCP, убедитесь, что компьютер, создающий ошибку, позволяет DHCP-серверу назначить этот адрес, а не назначать статический IP-адрес.

  2. Убедитесь, что рабочая станция может проверить связь с сервером. Для этого выполните следующие действия:

    1. Нажмите кнопку Пуск, выберите Выполнить, введите cmd и нажмите клавишу ВВОД.

    2. В командной строке DOS введите ping <ServerName> или ping <ServerIPAddress>.

      Примечание.

      Замените <заполнитель ServerName> именем сервера. Замените <заполнитель ServerIPAddress> IP-адресом сервера.

  3. Если используется статическое разрешение DNS, добавьте сервер под управлением SQL Server в список Порядок поиска DNS-сервера, который находится в разделе Сеть — свойства TCP/IP — конфигурация DNS, или в файл узла на компьютере рабочей станции. Обратитесь за помощью к администратору сетевой системы.

Решение 7

Очистите доступ для одного пользователя в свойствах базы данных.

  1. Откройте Среда SQL Server Management Studio.
  2. Разверните узел Базы данных.
  3. Щелкните правой кнопкой мыши базу данных приложения Microsoft Dynamics SL и выберите Свойства.
  4. На странице Параметры убедитесь, что в качестве значения Ограничить доступ не выбран один пользователь.

Решение 8

Проверьте версию файла Capicom.dll и зарегистрируйте файл вручную.

  1. Найдите файл Capicom.dll по следующим путям:

    32-разрядная операционная система: <SystemDrive>:\Windows\System32

    64-разрядная операционная система: <SystemDrive>:\Windows\SysWOW64

    Примечание.

    <SystemDrive> представляет диск, на котором установлена Microsoft Windows.

  2. Убедитесь, что версия файла Capicom.dll — 2.1.0.1. Для этого выполните следующие действия:

    1. Щелкните файл Capicom.dll правой кнопкой мыши и выберите Пункт Свойства. Откроется диалоговое окно Свойстваcapicom.dll .
    2. На вкладке Версия убедитесь, что для параметра Версия файла задано значение 2.1.0.1.
    3. Нажмите ОК.
  3. Щелкните правой кнопкой мыши файл Capicom.dll и выберите команду Открыть с помощью.

  4. В диалоговом окне Windows выберите Выберите программу из списка, а затем нажмите кнопку ОК.

  5. В диалоговом окне Открыть с помощью выберите Обзор.

  6. Найдите и откройте следующую папку:

    32-разрядная операционная система: <SystemDrive>:\Windows\System32 64-разрядная операционная система: <SystemDrive>:\Windows\SysWOW64

  7. Дважды щелкните файл Regsvr32.exe и нажмите кнопку ОК.

  8. Нажмите кнопку ОК , когда появится следующее сообщение:

    RegSvr32 — DllRegisterServer в SystemDrive :\windows\system32\capicom.dll выполнено успешно.

Решение 9

Откройте порт 1433 на SQL Server. Для этого выполните следующие действия:

  1. В панель управления выберите Брандмауэр Windows.
  2. На вкладке Исключения выберите Добавить порт.
  3. Укажите следующие параметры:
    • Имя: 1433
    • Номер порта: 1433
    • Выберите пункт TCP.
  4. Нажмите кнопку ОК два раза.

Решение 10

Удалите идентификатор пользователя, созданный в SQL, а затем свяжите идентификатор пользователя Microsoft Dynamics SL с идентификатором пользователя Windows. Для этого выполните следующие действия:

  1. Удалите идентификатор пользователя, созданный в SQL:

    1. В SQL Server Management Studio разверните узлы Базы данных, Системная база данных Microsoft Dynamics SL, Безопасность, а затем — Пользователи.
    2. Щелкните правой кнопкой мыши созданный идентификатор пользователя и выберите удалить.
    3. В диалоговом окне Удаление объекта нажмите кнопку ОК.
  2. Свяжите идентификатор пользователя Microsoft Dynamics SL с идентификатором пользователя Windows:

    1. Войдите в Microsoft Dynamics SL, используя идентификатор пользователя SYSADMIN.

    2. В области навигации выберите Администрирование.

    3. В области Сведения об администрировании в разделе Безопасность выберите Обслуживание пользователей.

    4. В поле Идентификатор пользователя введите идентификатор пользователя, который не может войти в Microsoft Dynamics SL.

    5. На вкладке Сведения в поле Имя пользователя Windows введите <Имя_>\<>пользователя домена.

      Примечание.

      Замените <заполнитель DomainName> доменным именем Windows, а заполнитель UserName> — <идентификатором пользователя Windows.

    6. Нажмите кнопку Сохранить, а затем закройте экран Обслуживание пользователей (95.260.00).

Решение 11

Синхронизация владения и безопасности в базах данных Microsoft Dynamics SL. Для этого выполните следующие действия:

  1. Откройте экран Обслуживание базы данных (98.290.00).
  2. В поле Имя SQL Server назначения введите имя сервера.
  3. В поле Идентификатор входа введите sa.
  4. В поле Пароль введите пароль для пользователя SYSADMIN.
  5. Нажмите Подключиться.
  6. На вкладке Обновление базы данных в поле Имя системной базы данных выберите системную базу данных.
  7. В столбце Базы данных выберите базу данных приложения.
  8. В области Сценарии обновления выберите Синхронизировать все права владения & безопасность.
  9. Выберите Обновить базу данных.
  10. Закройте экран Обслуживание базы данных (98.290.00).

Решение 12

Удалите и считывает всех пользователей в группу АДМИНИСТРАТОРЫ в Microsoft Dynamics SL. Для этого выполните следующие действия:

Примечание.

Это решение предполагает, что одна или несколько учетных записей пользователя Microsoft Dynamics SL с правами администратора могут войти в Microsoft Dynamics SL.

  1. Войдите в домен с помощью учетной записи пользователя домена Windows, связанной с учетной записью пользователя Microsoft Dynamics SL с административными разрешениями.
  2. Выберите Администрирование.
  3. В области System Manager выберите Групповое обслуживание в разделе Безопасность.
  4. В поле Идентификатор группы введите АДМИНИСТРАТОРЫ и нажмите клавишу TAB.
  5. Примечание.

    Идентификаторы пользователей, перечисленные в области Сведения .

  6. Удалите всех пользователей из списка, за исключением идентификатора пользователя, в который вы вошли в систему.
  7. Нажмите кнопку Сохранить.
  8. Добавьте идентификаторы пользователей и нажмите кнопку Сохранить.
  9. Закройте экран Обслуживание группы (95.280.00).

Резолюция 13

Откройте номера портов 1433 и 1434. Для этого выполните следующие действия:

  1. На компьютере под управлением SQL Server нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Брандмауэр Windows в режиме повышенной безопасности.
  2. Щелкните правой кнопкой мыши Правила для входящего трафика, выберите Создать правило, а затем нажмите кнопку Далее.
  3. Выберите Все программы, а затем нажмите кнопку Далее.
  4. Нажмите кнопку Далее, щелкните, чтобы снять флажок Общедоступный проверка, а затем нажмите кнопку Далее.
  5. Введите SQL SERVER в поле Имя и нажмите кнопку Готово.
  6. В области Правила для входящего трафика щелкните правой кнопкой мыши SQL SERVER и выберите пункт Свойства.
  7. На вкладке Протоколы и порты выберите TCP в поле Тип протокола .
  8. В поле Локальный порт выберите Конкретные порты и введите 1433.
  9. Нажмите кнопку Применить, а затем нажмите кнопку ОК.
  10. Щелкните правой кнопкой мыши Правила для входящего трафика, выберите Создать правило, а затем — Далее.
  11. Выберите Все программы, а затем нажмите кнопку Далее.
  12. Нажмите кнопку Далее, щелкните, чтобы снять флажок Общедоступный проверка, а затем нажмите кнопку Далее.
  13. В поле Имя введите SQL SERVER BROWSER и нажмите кнопку Готово.
  14. В области Правила для входящего трафика щелкните правой кнопкой мыши браузер SQL SERVER и выберите пункт Свойства.
  15. На вкладке Протоколы и порты выберите UDP в поле Тип протокола .
  16. В поле Локальный порт выберите Конкретные порты и введите 1434.
  17. Нажмите кнопку Применить, а затем нажмите кнопку ОК , чтобы закрыть диалоговое окно Свойства БРАУЗЕРА SQL SERVER .

Решение 14

Выберите соответствующее имя системной базы данных в поле Имя базы данных и нажмите кнопку ОК.

Решение 15

Добавьте псевдоним обратно на сервер SQL Server в служебной программе клиентской сети SQL Server:

На 32-разрядном компьютере:

  1. Перейти к запуску>Тип выполнения>cliconfg
  2. Убедитесь, что включены именованные каналы и TCP/IP.
  3. На вкладке Псевдоним выберите Добавить.
  4. В поле Псевдоним сервера введите имя сервера точно так же, как вы вводите его на экране Поиск баз данных .
  5. Оставьте все остальные значения по умолчанию. (По умолчанию должен использоваться псевдоним именованных каналов)
  6. Нажмите ОК.
  7. Нажмите Применить.
  8. Нажмите ОК.

На 64-разрядном компьютере:

  1. Перейдите на сайт C:\Windows\SysWOW64
  2. Запуск cliconfg.exe, расположенных в этой папке
  3. Убедитесь, что включены именованные каналы и TCP/IP.
  4. На вкладке Псевдоним выберите Добавить.
  5. В поле Псевдоним сервера введите имя сервера точно так же, как вы вводите его на экране Поиск баз данных .
  6. Оставьте все остальные значения по умолчанию. (По умолчанию должен использоваться псевдоним именованных каналов)
  7. Нажмите ОК.
  8. Нажмите Применить.
  9. Нажмите ОК.

Дополнительные сведения

Чтобы исключить проблемы с сетью, создайте тестовое подключение ODBC на компьютере, где появляется сообщение об ошибке. Для этого выполните следующие действия:

  1. В панель управления выберите Администрирование, а затем — Источники данных (ODBC).
  2. На вкладке User DSN нажмите кнопку Добавить, прокрутите список до конца, выберите SQL Server и нажмите кнопку Готово.
  3. Укажите следующие параметры:
    • Имя: TEST
    • Описание: TEST
    • Сервер: введите SQL Server, к которому требуется подключиться.
  4. Нажмите кнопку Далее.
  5. Выберите проверка подлинности Windows или Проверка подлинности SQL и введите имя пользователя и пароль sa, если это необходимо.
  6. Нажмите кнопку Далее два раза, нажмите кнопку Готово, а затем — Тест источника данных.