Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Защита с использованием пароля пользователя




Защита с использованием пароля БД

Стандартные способы защиты

Защита и взлом баз данных Access

  • Стандартные способы защиты
    • Защита с использованием пароля БД
    • Защита с использованием пароля пользователя
  • Нестандартные способы защиты
    • Изменение расширения файла
    • Защита с использованием пароля БД, содержащего непечатные символы
    • Защита с модификацией файла
    • Защита изменением версии БД
    • Защита с использованием электронного ключа
    • Шифрование значений таблиц

Под "защитой БД" здесь понимается способ предотвратить несанкционированный доступ к информации, хранимой в таблицах. Защита исходного кода форм и модулей не рассматривается.

Актуальность данной темы чрезвычайно высока. Об этом можно судить по первому месту в рейтинге (18 тысяч обращений) статьи "Защита баз mdb" которую написал Юрий Шерман. Мне встретилась даже книга в 500 страниц полностью посвящённая защите Access: Garry Robinson "Real World Microsoft Access Database Protection and Security.

Данный способ защиты позволяет установить пароль на открытие БД, для всех пользователей. Для его создания необходимо открыть файл БД в "монопольном" режиме и выбрать пункт меню Сервис / Защита / Задать пароль базы данных. Для работы с такой базой данных в MS Access потребуется вводить пароль. Вот пример работы с файлом БД, используя DAO или ADO.

Public Sub TestDAO()
Dim mWS As DAO.Workspace
Dim mDB As DAO.Database
Set mWS = DBEngine.Workspaces(0)
Set mDB = mWS.OpenDatabase _
("C:\a97.mdb", True, True, ";pwd=123")
End Sub

Public Sub TestADO()
Dim CnDB As New ADODB.Connection
CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0" & _
";Data Source=C:\a97.mdb" & _
";Jet OLEDB:Database Password=123"
End Sub

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

Данный способ позволяет ввести дополнительный уровень ограничений, связанных с работой БД Access. Основан на создании файла рабочих групп, в котором определяются имена пользователей, их пароли и права на работу с различными объектами БД.

Последовательность действий для создания защищённого файла:

  • Создание нового файла рабочих групп.
    Для этого в 97-2000 Access запускается программа WRKGADM.EXE, а в 2003 Access необходимо выбрать пункт меню "Сервис / Защита / Администратор рабочих групп". В администраторе жмём кнопку "Создать", указываем имя, организацию и код группы. Указываем имя и расположение создаваемого файла. Например:
    Имя: test_Имя
    Opгaнизaция: ~
    Кoд paбoчeй гpyппы: cтpoчкa 20 cимвoлoв.
    Фaйл paбoчeй гpyппы: C:\test\gr.mdw
  • Создание ярлыка, для запуска ms Access с использованием созданного mdw файла. Ярлык должен содержать строку: [путь к MSACCESS.EXE] /WrkGrp [путь к файлу mdw]. Например: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" /WrkGrp C:\test\gr.mdw
  • Запустив Access c помощью этого ярлыка необходимо открыть пункт меню "Сервис / Защита / Пользователи и группы". В открывшемся диалоговом окне необходимо создать нового пользователя и добавить его в группу "Admins". Например, был создан "test_Пользователь" с кодом "987654321"
  • Теперь необходимо открыть Access от имени созданного пользователя. Для этого необходимо добавить в созданный ярлык строку: /user [имя пользователя]. Например: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" /WrkGrp C:\test\gr.mdw /User test_Пользователь
  • Запускаем Access c помощью этого ярлыка. Теперь созданному пользователю необходимо присвоить пароль. Это делается в том же диалоге "Пользователи и группы". Допустим пользователю "test_Пользователь" присвоен пароль "test_Пароль". Далее, необходимо создать новую БД. При этом владельцем этой базы, а также всех создаваемых или импортируемых объектов (таблиц, запросов и.т.п.) будет пользователь имя которого было указано в ярлыке.
  • После того, как БД будет создана желательно удалить "Admin" из группы "Admins" и отобрать у группы "Users" права на объекты БД и на открытие базы.
  • Добавляем в ярлык название защищённой БД. Например: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" C:\test\db2k_test.mdb /WrkGrp C:\test\gr.mdw /User test_Пользователь /pwd test_Пароль

Вот пример открытия БД защищённой на уровне пользователей с помощью DAO или ADO

Public Sub TestDAO()
Dim mWS As DAO.Workspace
Dim mDB As DAO.Database
DBEngine.SystemDB = "C:\test\gr.mdw"
Set mWS = DBEngine.CreateWorkspace _
("", "test_Пользователь", "test_Пароль", dbUseJet)
Set mDB = mWS.OpenDatabase _
("C:\test\a97.mdb", True)
End Sub

Public Sub TestADO()
Dim CnDB As New ADODB.Connection
CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test\a97.mdb;" & _
"Jet OLEDB:System database=C:\test\gr.mdw;" & _
"User ID=test_Пользователь;" & _
"Password=test_Пароль;"
End Sub

Снятие такой защиты.
Создать новую БД. В ярлыке прописать путь к этой БД, MDW файл защищённой БД имя и пароль владельца. Открыть с помощью этого ярлыка новую БД. Импортировать в неё таблицы из защищённой, после чего сменить для всех объектов БД владельца на Admin. Для того, чтобы узнать имя и пароль владельца БД можно воспользоваться специализированными программами, описанными в обзоре Пароли Access. При отсутствии файла рабочих групп его можно восстановить. Для этого потребуется узнать имена и идентификаторы владельцев объектов БД. Эта информация содержится в файле базы данных и может быть извлечена с помощью таких программ как AOPR. Используя эти данные создаётся новый файл. (последовательность описана выше)

Совсем не обязательно использовать программы, позволяющие определить пароль БД или пользователя. Часто программисты совсем не заботятся о сокрытии пароля в тексте программы. Запустив программу, работающую с защищённой БД необходимо открыть в шестнадцатеричном редакторе WinHex виртуальную память этого приложения. Проведя поиск Unicode строк 'User ID='; 'Password='; 'Database Password=' или 'pwd=' можно найти имя пользователя, его пароль и пароль базы данных.

 

Можно вовсе проигнорировать наличие защиты. Для этого надо воспользоваться AccessRecovery, которая создаёт новый файл без защиты и переносит в него таблицы, запросы, формы, макросы, отчеты и код модулей.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 830; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.