Безопасность пользователей на уровне базы данных в MS Jet Engine - PullRequest
1 голос
/ 05 мая 2011

Я хочу добавить систему контроля доступа пользователей к одному из моих приложений MS Access, используя систему DAO, встроенную в ядро ​​базы данных MS Jet. Я работаю с базой данных accdb в Access 2007.

Я понимаю, как управлять пользователями и группами DAO.

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

Мой вопрос: Есть ли способ включить регистрацию пользователя для некоторых accdb и оставить его отключенным для всех остальных?

1 Ответ

2 голосов
/ 05 мая 2011

Access использует файл информации рабочей группы для хранения информации об учетной записи пользователя и группы. Имя по умолчанию: System.mdw

Вы можете узнать имя вашего текущего информационного файла рабочей группы и его местонахождение, изучив свойство SystemDb. Например, в сеансе Access перейдите в окно «Немедленное окно» и запустите следующую строку:

? SystemDB 

Однако у вас может быть другой файл информации о рабочей группе и запуск Access с ярлыком, который включает ключ / WRKGRP, за которым следует полный путь к альтернативному файлу информации о рабочей группе.

Шаблон быстрого доступа включает 4 элемента.

"Path2EXE" "Path2Db" /WRKGRP "Path2MDW"

Вот рабочий ярлык из моей системы Access 2003. (Это должно быть все в одной строке; я разделил это здесь, чтобы вам не нужно было прокручивать, чтобы увидеть все это.)

"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "P:\Access\wip\sandie\NewDB.mdb" 
/WRKGRP "P:\Access\wip\sandie\Security.mdw"

Итак, дело в том, что вы можете иметь два (или более) информационных файла рабочей группы: по умолчанию без пароля администратора, который вы используете для своих незащищенных баз данных; а другой - с паролем администратора, который вы используете для своих защищенных баз данных, и когда вы открываете их, используйте ключ / WRKGRP.

Это оставляет вопрос о том, как создать альтернативный информационный файл рабочей группы. Используйте мастер безопасности на уровне пользователя и выберите опцию «Создать новый информационный файл рабочей группы».

Еще один момент, который меня озадачивает, это то, что вы сказали Access 2007 и ACCDB. Насколько я понимаю, Access 2007 и 2010 по-прежнему поддерживают безопасность на уровне пользователя, но только в более старом формате базы данных MDB, а не в формате ACCDB.

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

...