Access 2007 - accdb;варианты настройки надежной многопользовательской среды на нескольких серверах? - PullRequest
2 голосов
/ 27 марта 2011

У меня проблемы с сортировкой всей информации / различных опций в отношении Access 2007, используемого в многопользовательской среде. Вот краткое описание моей текущей ситуации. На работе есть «Бизнес-сеть», в которую я могу войти и использовать для мониторинга двух других серверов через удаленный рабочий стол. Бизнес-сеть строго контролируется нашим ИТ-отделом, и никому не разрешается устанавливать программное обеспечение или драйверы без их согласия. У меня есть административные привилегии на обоих серверах.

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

Я создал две базы данных доступа (по одной на каждом сервере, потому что они в настоящее время находятся за отдельными брандмауэрами), чтобы запрашивать информацию из серверной части SQL этих программ и комбинировать ее с относительной информацией, которую я собрал в таблицах, чтобы добавить больше подробно к данным, которые собирают программы. Моя программа все еще находится в стадии отладки, но в конечном итоге эта информация может быть доступна для полевых техников / технического обслуживания, чтобы облегчить их работу. Обслуживающий персонал может также добавить еще больше информации в зависимости от состояния ремонта и т. Д. Наконец, я создал отчеты, которые могут запускать менеджеры / инженеры, которые ищут общий статус своей области.

Обе базы данных доступа разделены таким образом, что серверные части отделены от форм, запросов и т. Д. Я использую источник данных ODBC для импорта ссылки на SQL. Я использую vba для аутентификации пользователя, обновления записей журнала пользователя и контроля доступа пользователя / группы. Все работает так, как я задумал, за исключением того факта, что каждый, кто входит на сервер, будет пытаться запустить одну и ту же копию интерфейса. Например, у меня был сотрудник входа на сервер через RD для тестирования программы, и я вошел в систему со своего рабочего стола. После входа в систему я мог видеть открытые им формы. Доступ уже запущен. Не имея возможности установить доступ локально (или даже во время выполнения, из-за ограничений ИТ) на каждую рабочую станцию ​​отдельных пользователей, я не уверен, какой подход предпринять, чтобы решить эту проблему.

Дополнительная информация, сервер 1 Один из серверов считается «главным сервером», с которым связывается множество клиентских станций «подчиненных серверов». Единственный способ получить доступ к папкам на главном сервере - войти на клиентскую станцию ​​и запустить RD.

Сервер 2 Этот сервер считается «историком». Он связывается с терминальным сервером, на котором пользователи входят в систему с помощью RD и запускают приложения, которые используют SQL-сервер, который находится в архиве. Я был в состоянии настроить общие ресурсы, чтобы определенные папки были видны в истории с сервера терминалов.

Может кто-нибудь сказать мне, какой мой лучший вариант?

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

CTN

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Вот предложение, как реализовать то, что написал Дэвид Фентон: напишите простой пакетный скрипт, который копирует ваш веб-интерфейс из пути установки в% TEMP% (временная папка текущего сеанса пользователя) и запускает веб-интерфейс оттуда.Что-то вроде

 rem make sure current directory is where the script is
 cd /d %~d0%~p0
 rem assume frontend.mdb is in the same folder as the script
 copy /y frontend.mdb %temp%
 start %temp%\frontend.mdb

Скажите своим пользователям не запускать внешний интерфейс напрямую, только через пакетный скрипт, тогда каждый должен получить свою собственную копию внешнего интерфейса.Или задайте для внешнего интерфейса другой суффикс в пути установки и переименуйте его в «frontend.mdb» при копировании в% temp%.

1 голос
/ 27 марта 2011

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

Вы ссылаетесь на пользователей, выполняющих вход через Terminal Server.Если это так, возможно, вы можете сохранить внешние интерфейсы в профилях пользователей своих учетных записей сервера терминалов?Это предполагает, что они используют не только два входа администратора Terminal Server по умолчанию, конечно.

Другая вещь, которая мне не ясна, это то, зачем вам вообще нужен бэкэнд в Access / Jet / ACE -почему бы просто не связать через ODBC с SQL Server и использовать эти данные напрямую?Единственная причина иметь независимый файл Jet / ACE с таблицами данных в этом сценарии - это то, что есть данные, которые вы сохраняете для своего приложения Access, которые не хранятся в SQL Server.У вас также могут быть временные таблицы (например, для подготовки сложных отчетов и т. Д.), Но они должны храниться во временной базе данных для каждого пользователя, а не в общей серверной части.

...