У меня есть приложение, которое отлично работает при запуске с сервера. Когда клиенты пытаются подключиться, они получают следующую ошибку:
Не удалось получить данные. * Поставщик данных не может быть инициализирован * SQL Server не существует или доступ запрещен
в моих веб-компонентах Office (MDAC). Я предполагаю, что есть какая-то ошибка безопасности или конфигурации сервера, но я не могу ее точно определить. Я использую SQL Server 2005.
* Примечание - клиенты не могут изменять свои настройки безопасности, политику компании.
SQL Server 2005, Sharepoint 2003 и PerformancePoint 2007 устанавливаются в одном устройстве. Это панель управления PerformancePoint, развернутая как веб-часть на Sharepoint.





Настройки вашего брандмауэра могут препятствовать подключению ваших клиентов. В противном случае это может быть проблема с DNS.
какую проблему с DNS я ищу?
Стандарт - вы не можете разрешить адрес сервера. Попробуйте выполнить эхо-запрос или трассировку из командной строки, когда код пытается получить доступ к SQL Server не работает. Предлагаемая здесь команда TELNET тоже полезна.
Скорее всего, проблема в том, что ваш брандмауэр не разрешает удаленные подключения?
клиентский брандмауэр не может быть изменен
Это не проблема брандмауэра клиента. Респонденты говорят о наличии межсетевого экрана между сервером приложений и сервером базы данных.
Когда вы попробуете это из командной строки:
Имя сервера TELNET 1433
Что происходит? Если у вас пустой экран, значит, SQL Server прослушивает, и у вас что-то не так в настройках вашего клиента. Если вы получили ответ типа «Доступ запрещен» или «Нет ответа», скорее всего, это проблема брандмауэра или SQL Server не слушает, но в любом случае это проблема сервера.
не удалось открыть соединение с хостом на порту 1433: соединение не удалось что мне нужно сделать, чтобы соединение работало?
Похоже на проблему с брандмауэром клиента
я запустил telnet на сервере, а не на клиенте
Если вы запустили TELNET на сервере и по-прежнему получаете это сообщение, то держу пари, что SQL Server не прослушивает TCP / IP. Откройте «Конфигурацию сервера» на сервере, проверьте список протоколов и убедитесь, что TCP включен.
Если он работает с сервера, но у клиентов возникают проблемы, я думаю, что часть ошибки "доступ запрещен" является ключевым моментом, и это проблема аутентификации.
Какой вид аутентификации вы используете для аутентификации своих клиентов? Использует ли сервер олицетворение? Если вы используете клиентов и сервер в домене Active Directory, клиентское приложение (например, Office или Internet Explorer) может передавать учетные данные на сервер, который сервер использует для аутентификации в базе данных.
я включил анонимный доступ в IIS
Вы отключили другие методы аутентификации?
SQL Server 2005 по умолчанию отключает доступ к сети, возможно, вам потребуется включить его.
http://msdn.microsoft.com/en-us/library/ms165647(SQL.90).aspx
включение именованных каналов, TCP / IP и VIA в конфигурации сети фактически препятствовало подключению сервера к базе данных
Хотя в целом это хороший момент, я не согласен в этом случае. Приложение работает при запуске с сервера, который предлагает мне проблемы с аутентификацией.
Чтобы к SQL Server можно было подключиться с сетевого компьютера, на сервере должен быть открыт порт 1433 для трафика TCP. Кроме того, если у вас есть именованный экземпляр, вы должны проверить порт, который он прослушивает, так как он может отличаться от значения по умолчанию и, вероятно, потребуется открыть. Вам также необходимо открыть порт 1434 для UDP для поддержки службы браузера SQL.
проблема с брандмауэром. отключить брандмауэр, снова запустить экземпляр
Вы отметили это как sharepoint, но не описали конфигурацию системы в вопросе. Это может помочь? Например, является ли точка доступа интерфейсного приложения? Находится ли приложение на том же сервере, что и SQL Server?