Не удалось войти в систему для пользователя? - PullRequest
0 голосов
/ 19 июня 2010

Я занимаюсь разработкой веб-приложения, которое подключается к базе данных SQL 2000.Все отлично работает с моей базой данных (которая на самом деле является SQL 2008), но когда я пытаюсь перенести ее на другой сервер (который на самом деле работает под управлением SQL 2000), я получаю некоторые странные ошибки.

Я получаю Ошибка входа в систему дляимя пользователя, которое использует веб-приложение, поэтому я выполнил свои обычные действия по устранению неполадок ...

Я сбросил пароль до того, каким он должен быть, убедившись, что пользователь сопоставлен с базой данных, к которой он пытается подключиться.Я подключился к базе данных через Enterprise Manager, используя имя пользователя и пароль, и смог выполнять запросы.Я сбрасываю сервер SQL.

Мне не хватает идей, кроме того, что в моем приложении может быть место, что пароль по какой-то причине меняется.Есть ли способ узнать, какой пароль видит SQL-сервер?Я просто хочу немного сузить область поиска.

Либо это, либо у кого-нибудь есть какие-либо другие предложения о том, как я могу это исправить?

РЕДАКТИРОВАТЬ: Кроме того, веб-приложение МОЖЕТговорите с базой данных, она попадает в базу данных, чтобы получить учетные данные для входа, и она может войти без проблем.Ошибка появляется позже в приложении, когда я пытаюсь получить больше информации из базы данных, например, параметры отчета или места экспорта.

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 19 июня 2010

Во-первых, проблема не в том, что для пользователя не удалось войти в систему. Из вашего описания, вход в систему прошел успешно. Тем не менее, вы заявили, что позже вы получили исключение при попытке доступа к определенным объектам. Это похоже на проблему с авторизацией / разрешениями для пользователя базы данных, с которой связан логин, и объектов, к которым он пытается получить доступ. Вы пытались подключиться к базе данных с помощью Enterprise Manager и тех же учетных данных, которые использовались сайтом, и выполнить запрос, идентичный веб-приложению?

1 голос
/ 19 июня 2010

Возможно, ваш SQL-сервер не разрешен для удаленных подключений?

РЕДАКТИРОВАТЬ: или ваш брандмауэр не имеет правильные открытые порты?

EDIT2:

Если ваш веб-скрипт находится на том же сервере, что и сервер SQL, я могу подумать только о том, что вы указали неверный пароль, если вы указали старый сервер по имени (хотя это был localhost) и вы не обновили его. Если веб-скрипт находится на другом сервере, проверьте порты брандмауэра и убедитесь, что на сервере sql разрешено удаленное подключение.

EDIT3:

Извинения, я не видел ваше обновление до того, как опубликовал последнее изменение (EDIT2). Томас прав, попробуй.

0 голосов
/ 19 июня 2010

Я нашел проблему!

На самом деле это были некоторые затяжные запросы, которые у меня были в приложении. Я начал заполнять некоторые падения по-разному, и запросы никогда не удалялись, как только я их убирал, ошибки перестали появляться.

Тем не менее странно, что это не повлияет на приложение на моей машине, но на этой другой машине вызовет все виды havok.

Спасибо всем за помощь и предложения, это действительно помогло сузить проблему. Хотя Томас получает принятый ответ, потому что его предложение направило меня в правильном направлении.

0 голосов
/ 19 июня 2010

Не уверен, как вы делаете миграцию, но вы можете убедиться, что ваш пользователь sql не становится осиротевшим:

С - http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm

Сначала убедитесь, что это проблема. Это будет список осиротевших пользователей:

EXEC sp_change_users_login 'Report'

Если у вас уже есть логин и пароль для этого пользователя, исправьте это, выполнив:

EXEC sp_change_users_login 'Auto_Fix', 'user'

Если вы хотите создать новый логин и пароль для этого пользователя, исправьте это, выполнив:

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...