MS Access db через общий сетевой ресурс

Asked
Viewd2192

2

У меня есть простой веб-сайт, которому необходимо подключиться к базе данных доступа через общий ресурс unc.

Сервер представляет собой компьютер под управлением Windows 2003 под управлением IIS 6. Соединение осуществляется через ODBC.

Мы получаем сообщение об ошибке: "
ОШИБКА [42000] [Microsoft] [ODBC Microsoft Access Driver] Недействительный пароль.
ОШИБКА [IM006] [Microsoft] [Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера

Я предполагаю, что сервер IIS не имеет доступа к общему ресурсу.Пул приложений работает в сетевой службе.

Как я могу это исправить?

ОБНОВЛЕНИЕ
Это просто странно.ЕСЛИ Я проверил ReadOnly в конфигурации ODBC И К этой базе данных больше никто не подключен, то это работает.

Если к нему подключается кто-то еще, я получаю сообщение об ошибке «HY000] [Microsoft] [ODBC Microsoft Access Driver] МОЖЕТ не использовать '(неизвестно)'; файл уже используется».

Если я сниму флажок "Только для чтения" (без других изменений), появится сообщение "Недействительный пароль".

  • @Remou: не уверен.Изучаю это сейчас.

    NotMe16 ноября 2009, 15:53
  • В этом случае просто догадывались, но есть ли у пользователя полные права доступа к каталогу, в котором хранится база данных доступа?В противном случае первый пользователь, который откроет базу данных, заблокирует файл .ldb (блокировка).

    Fionnuala14 ноября 2009, 00:46

3 ответов

2

ЕСЛИ Я проверил ReadOnly в конфигурации ODBC И Никто больше не подключен к этой базе данных, тогда она работает

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

  • Проблема с правами доступа к папке.Должен был выбрать ответ месяц назад…

    NotMe14 января 2010, 03:01
1

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

Как получить доступ к сетевым файлам из приложений IIS

1

У меня нет опыта в этом (я не считаю Jet / ACE подходящим хранилищем данных для веб-сайта), но я много знаю о Jet / ACE.

Тот факт, что при выборе значения «Только для чтения» вы получаете соединение, предполагает, что пользователю, на котором запущен веб-сервер, не хватает прав на запись в файл, который вы открываете (или, что более вероятно, для папки, в которой он находится, и / или общий ресурс, который делает его доступным по сети). При подключении только для чтения от одного пользователя не нужно создавать файл LDB (файл блокировки записи). Если у пользователя веб-сервера нет разрешения ИЗМЕНИТЬ папку, в которой хранится MDB / ACCDB, он не сможет создать файл LDB и, следовательно, не сможет его редактировать.

Также имейте в виду, что все операции с Jet / ACE используют имя пользователя. Очевидно, он будет использовать учетную запись администратора по умолчанию без пароля, но, возможно, вы попытались предоставить другую пару имени пользователя и пароля. В этом случае, возможно, вы используете неправильный файл рабочей группы или другой, чем вы считаете подходящим.

  • Имейте в виду, что рабочая станция XP ограничена 10 сетевыми подключениями любого типа.

    David-W-Fenton17 ноября 2009, 03:11
  • Я полностью согласен с тем, что этот самолет является совершенно неподходящим хранилищем данных для веб-сайтов.Клиент это знает и пытается исправить, но я не задерживаю дыхание.Я прошу их проверить права доступа к папке.В качестве примечания я обнаружил, что база данных Access находится на машине с Windows XP.Становится все лучше и лучше…;)

    NotMe16 ноября 2009, 15:55