SQL Server не существует или отказано в доступе ошибка

У меня есть приложение, которое отлично работает при запуске с сервера. Когда клиенты пытаются подключиться, они получают следующую ошибку:

Не удалось получить данные. * Поставщик данных не может быть инициализирован * SQL Server не существует или доступ запрещен

в моих веб-компонентах Office (MDAC). Я предполагаю, что есть какая-то ошибка безопасности или конфигурации сервера, но я не могу ее точно определить. Я использую SQL Server 2005.

* Примечание - клиенты не могут изменять свои настройки безопасности, политику компании.

Вы отметили это как sharepoint, но не описали конфигурацию системы в вопросе. Это может помочь? Например, является ли точка доступа интерфейсного приложения? Находится ли приложение на том же сервере, что и SQL Server?

Robin Minto 12.01.2009 19:06

SQL Server 2005, Sharepoint 2003 и PerformancePoint 2007 устанавливаются в одном устройстве. Это панель управления PerformancePoint, развернутая как веб-часть на Sharepoint.

Sheehan Alam 12.01.2009 19:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
7 120
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Настройки вашего брандмауэра могут препятствовать подключению ваших клиентов. В противном случае это может быть проблема с DNS.

какую проблему с DNS я ищу?

Sheehan Alam 12.01.2009 19:10

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

Otávio Décio 12.01.2009 19:22

Скорее всего, проблема в том, что ваш брандмауэр не разрешает удаленные подключения?

клиентский брандмауэр не может быть изменен

Sheehan Alam 12.01.2009 19:14

Это не проблема брандмауэра клиента. Респонденты говорят о наличии межсетевого экрана между сервером приложений и сервером базы данных.

Robin Minto 12.01.2009 19:32
Ответ принят как подходящий

Когда вы попробуете это из командной строки:

Имя сервера TELNET 1433

Что происходит? Если у вас пустой экран, значит, SQL Server прослушивает, и у вас что-то не так в настройках вашего клиента. Если вы получили ответ типа «Доступ запрещен» или «Нет ответа», скорее всего, это проблема брандмауэра или SQL Server не слушает, но в любом случае это проблема сервера.

не удалось открыть соединение с хостом на порту 1433: соединение не удалось что мне нужно сделать, чтобы соединение работало?

Sheehan Alam 12.01.2009 19:13

Похоже на проблему с брандмауэром клиента

JoshBerke 12.01.2009 19:26

я запустил telnet на сервере, а не на клиенте

Sheehan Alam 12.01.2009 19:28

Если вы запустили TELNET на сервере и по-прежнему получаете это сообщение, то держу пари, что SQL Server не прослушивает TCP / IP. Откройте «Конфигурацию сервера» на сервере, проверьте список протоколов и убедитесь, что TCP включен.

SqlRyan 12.01.2009 19:30

Если он работает с сервера, но у клиентов возникают проблемы, я думаю, что часть ошибки "доступ запрещен" является ключевым моментом, и это проблема аутентификации.

Какой вид аутентификации вы используете для аутентификации своих клиентов? Использует ли сервер олицетворение? Если вы используете клиентов и сервер в домене Active Directory, клиентское приложение (например, Office или Internet Explorer) может передавать учетные данные на сервер, который сервер использует для аутентификации в базе данных.

я включил анонимный доступ в IIS

Sheehan Alam 12.01.2009 19:12

Вы отключили другие методы аутентификации?

Robin Minto 12.01.2009 19:17

SQL Server 2005 по умолчанию отключает доступ к сети, возможно, вам потребуется включить его.

http://msdn.microsoft.com/en-us/library/ms165647(SQL.90).aspx

включение именованных каналов, TCP / IP и VIA в конфигурации сети фактически препятствовало подключению сервера к базе данных

Sheehan Alam 12.01.2009 19:33

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

Robin Minto 12.01.2009 19:34

Чтобы к SQL Server можно было подключиться с сетевого компьютера, на сервере должен быть открыт порт 1433 для трафика TCP. Кроме того, если у вас есть именованный экземпляр, вы должны проверить порт, который он прослушивает, так как он может отличаться от значения по умолчанию и, вероятно, потребуется открыть. Вам также необходимо открыть порт 1434 для UDP для поддержки службы браузера SQL.

проблема с брандмауэром. отключить брандмауэр, снова запустить экземпляр

Другие вопросы по теме