Может читать, но не может обновить - PullRequest
2 голосов
/ 28 августа 2011

Проблема: Любая попытка обновления БД запрещена в SQL Server 2008 R2 с использованием SQL на классической странице ASP.

В двух словах, может читать, но не может обновлять / записывать в БД с использованием SQL на странице ASP

Сообщение об ошибке:

Поставщик Microsoft OLE DB для SQL Server, ошибка '80040e4d'

Ошибка входа пользователя

Мне потребовалось более 6 часов для устранения неполадок, но до сих пор нет ответа

Проверенные вещи

  1. Пароль пользователя правильный. Дважды проверенный. Протестировал неверный пароль, и в результате я не могу читать из БД.

  2. Когда пароль пользователя правильный, можно читать из базы данных. Можно использовать SQL для чтения из БД. Просто не могу обновить с помощью SQL.

  3. db_datareader & db_datawriter проверен для пользователя

  4. Проверен журнал SQL Server - ошибка 18456, уровень серьезности 14, состояние 8. Это несоответствие пароля. Но я очень уверен, что пароль правильный, потому что я могу читать из БД. Это ТОЛЬКО когда попытка SQL записать в БД запрещена.

Подсказка

  • Требуется ли для dbo также проверка db_datareader & db_datawriter? Я не могу проверить, что в SQL Server Management Studio

  • Что-нибудь о схеме мне нужно сделать?

Кто-нибудь, помогите. Большое спасибо /

Он отлично и корректно работает на другом сайте, используя SQL Server 2000. Когда я перехожу на SQL Server 2008 R2, это проблема.

AA Jaz

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

пожалуйста, попробуйте эту базу данных из студии управления сервером sql, чтобы обновить любую таблицу по запросу в анализаторе запросов, если она не работает, затем проверьте разрешение таблицы или разрешение входа пользователя

0 голосов
/ 05 сентября 2011

Похоже, что ваш логин на SQL Server имеет только разрешения на чтение для базы данных (/ table / server) и не имеет разрешения на запись, dbwriter и dbreader - это роли в SQL Server 2000, в 2008 году все изменилось Вы добавили роли в свой логин.

Пожалуйста, попробуйте предоставить логин все разрешения, как показано ниже

GRANT ALL ON <your_table> to <your_login>
...