Ошибка открытия соединения с SQL Server на веб-сервере - PullRequest
0 голосов
/ 11 марта 2011

Вот моя ошибка:

ОШИБКА [28000] [Microsoft] [ODBC SQL Драйвер сервера] [SQL Server] Ошибка входа для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON. ОШИБКА [28000] [Microsoft] [ODBC Драйвер SQL Server] [SQL Server] Войти не удалось для пользователя 'NT ВЛАСТЬ \ АНОНИМНЫЙ ЛОГОН '.

Вот моя строка подключения при запуске приложения:

MyConnection = New Odbc.OdbcConnection("DRIVER={SQL Server};SERVER=MySqlServer;Trusted_Connection=True;DATABASE=MyDatabase")

Вот часть Web.Config:

<authentication mode="Windows"/> 
<identity impersonate="false"/>

Вот мои настройки IIS (7):

Аутентификация

  • Анонимная аутентификация: отключено
  • Олицетворение ASP.NET: отключено
  • Базовое аутентификация: включено
  • Дайджест-аутентификация: отключено
  • Аутентификация по формам: отключено
  • Аутентификация Windows: включена

Строки подключения

  • MyDatabaseConnection: источник данных = MySqlServer; начальный каталог = MyDatabase; интегрированная безопасность = True
  • LocalSqlServer: источник данных =. \ SQLEXPRESS; Интегрированная безопасность = SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf; Экземпляр пользователя = true

Ответы [ 4 ]

0 голосов
/ 11 марта 2011

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

Таким образом, вам нужно либо включить олицетворение в соответствии с рекомендациями, либо изменить идентификатор пользователя и пароль, используемые пулом приложений, который используется для запуска вашего веб-сайта. Эта статья MSDN , хотя и устарела, все еще применяется и должна помочь вам в этом.

0 голосов
/ 11 марта 2011

, если ваше веб-приложение работает без встроенной безопасности. удалите параметр безопасности «Разрешить анонимные подключения». Когда аутентификация на веб-сервере выполняется как ANONYMOUS, запрос будет выполнен с использованием идентификатора, который не имеет достаточных прав для вашей базы данных SQL Server.

Редактировать: если вы запускаете веб-сервер на отдельном компьютере, а не на клиентском компьютере, вы можете проверить, действительно ли сервер распознает учетную запись, используемую на клиентском компьютере. Если машины не являются частью одного и того же домена безопасности, возможно, вам даже придется пройти через сомнительную процедуру изменения сервера Локальные политики -> Параметры безопасности -> Доступ к сети: модель общего доступа и безопасности для локальных учетных записей с настройкой: Classic - local users authenticate as themselves и созданием учетной записи пользователя с тем же именем и паролем на сервере.

Возможно, вы также захотите изучить журналы http на сервере

0 голосов
/ 11 марта 2011

Какую учетную запись пользователя следует использовать для подключения к базе данных? Ваша учетная запись пользователя, учетная запись на сервере SQL, учетная запись пула приложений IIS?

По умолчанию, если вы не дадите строке подключения имя пользователя и пароль, .NET будет использовать учетные данные AppPool, которые, как говорит Симен, не имеют достаточных привилегий для сервера SQL.

Если вы хотите использовать учетные данные пользователя, обращающегося к веб-сайту (возможно, это плохая идея), вам нужно использовать олицетворение, как говорит Тьямин, но если вы хотите использовать учетную запись SQL, настроенную для базы данных, то вам нужно ввести имя пользователя и пароль этого пользователя в строку подключения. (http://www.sqlstrings.com/SQL-Server-connection-strings.htm)

0 голосов
/ 11 марта 2011

Я полагаю, что в этом случае вам, возможно, придется использовать олицетворение ASP.Net.

http://weblogs.asp.net/achang/archive/2004/04/15/113866.aspx

...