2009-11-13 2 views
2

У меня есть простой веб-сайт, которому необходимо подключиться к базе данных доступа через share.MS Access db over network share

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

Мы получаем сообщение об ошибке, которое говорит "
ERROR [42000] [Microsoft] [ODBC Microsoft Access Driver] Не действительный пароль.
ERROR [IM006] [Microsoft] [ODBC Driver Manager] Водителя SQLSetConnectAttr не удалось

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

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

UPDATE
Это просто странно. ЕСЛИ я проверил ReadOnly в конфигурации ODBC И никто другой не подключен к этой базе данных, тогда он работает.

Если кто-то присоединяется к нему, то он дает мне ошибку «HY000] [Microsoft] [ODBC Microsoft Access Driver] COOLD не использует« (неизвестный) », файл уже используется».

Если я сниму конфигурацию только для чтения (никаких других изменений), в ней говорится «Недействительный пароль».

+0

Просто угадать в этом случае, но имеет ли пользователь полные разрешения в каталоге, в котором хранится база данных доступа? Если нет, первый пользователь, который откроет базу данных, заблокирует файл .ldb (lock). – Fionnuala

+0

@Remou: не уверен. Взгляни сейчас. – NotMe

ответ

2

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

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

+0

Проблема с папкой была проблемой. Должен был выбрать ответ месяц назад ... – NotMe

1

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

How to access network files from IIS applications

1

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

Тот факт, что при установлении только для чтения вы получаете соединение, предполагает, что пользователь, на котором работает веб-сервер, не имеет права на запись на файл, который вы открываете (или, скорее, для папки, в которой он находится, и/или доля, которая делает ее доступной по сети). Для подключения только для чтения от одного пользователя не требуется создавать LDB-файл (файл блокировки записи). Если пользователь веб-сервера не имеет разрешения CHANGE в папке, в которой хранится MDB/ACCDB, он не сможет создать файл LDB и, следовательно, не сможет редактировать файл.

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

+0

Я полностью согласен с тем, что реактивный самолет является абсолютно неприемлемым хранилищем данных для веб-сайтов. Клиент это знает и пытается исправить, но я не задерживаю дыхание. Я попрошу их проверить права доступа к папке. В качестве примечания я узнал, что база данных Access находится на компьютере под управлением Windows XP. Это становится все лучше и лучше ...;) – NotMe

+0

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