Безопасное программирование базы данных Access

Почти каждый, кто использует приложение Microsoft Access, использует один из (или все) из следующих способов защиты базы данных (базы данных), блокировки рук и блокировки любопытных сотрудников:

1. Защитите код VBA (Visual Basic для приложений), выбрав «Свойства» в меню «Инструменты» окна редактора Microsoft Visual Basic и выбрав страницу «Защита» в диалоговом окне «Свойства проекта». Наконец, выберите Заблокировать проект для просмотра вместе с защитой паролем. Таким образом, структуру и данные таблиц можно будет просматривать и изменять.

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

3. Используйте базу данных шифрования / дешифрования. для шифрования базы данных, запретить служебным программам обрабатывать расшифрованные документы, но по-прежнему использовать Access для открытия.

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

5. Создайте загрузочную форму, которая требует имени и пароля, используя диалоговое окно Startup (из списка Display Form / Page), чтобы указать, что эта форма будет открываться каждый раз при первом открытии базы данных. Таким образом, вы можете скрыть окно базы данных, в котором вы можете просмотреть и выбрать компоненты базы данных для восстановления.

Вышеупомянутыми способами пятый путь все же можно преодолеть, нажав и удерживая клавишу Shift при открытии базы данных. Чтобы исправить это, мы можем использовать Visual Basic, чтобы присвоить False свойству AllowBypassKey, чтобы отключить клавишу Shift при открытии базы данных.

Предположим, у вас есть база данных с именем dbLock.MDB. Каждый раз, когда люди открывают его, вы хотите, чтобы форма frmKhoiDong всегда отображалась первой, указав для параметра Display Form / Page как frmKhoiDong. Чтобы изменить свойство AllowBypassKey, необходимо открыть базу данных, присвоить этому атрибуту новое значение, закрыть базу данных, а затем открыть новую базу данных. Помните, что его необходимо заблокировать, чтобы люди не могли его открыть и открыть, а это значит, что у нас должен быть ключ, чтобы открыть его. Ключевым моментом здесь является другая форма, например frmChiaKhoa.

После изменения свойства AllowBypassKey убедитесь, что форма frmKhoiDong отображается при открытии базы данных. Таким образом, мы пропускаем ключ через эту форму, рисуя блок управления (если у него есть процедура для обработки ситуации с щелчком, это нормально), например label lblChiaKhoa, затем устанавливаем свойство Visible на No и добавляем командную строку DoCmd.OpenForm frmChiaKhoa ‘в процедуру для обработки ситуации Щелкните. Вы должны запомнить расположение этикетки, чтобы вынуть ключ. Таким образом, оставшаяся проблема находится в форме frmChiaKoa.

Откройте окно редактора Microsoft Visual Basic, выберите Ссылки. чтобы гарантировать, что библиотека объектов Microsoft DAO xx.xx (где версия xx.xx может быть: 2.5 или 3.51 или 3.6 в зависимости от версии Access, конечно, должна выбрать последнюю версию) выбрана в списке «Доступные ссылки».

Рисунок 1 безопасного программирования базы данных Access

Рисунок 1: Форма дизайна

Рисунок 1 — это разделенная форма. Необходимо спроектировать дерево, включая текстовое поле txtPassword для получения пароля, который должен ввести человек, который должен разблокировать, кнопка cmdLock выполняет блокировку базы данных и кнопку cmdUnlock для выполнения разблокировки базы данных. Готово, вы вводите процедуры для обработки как код 1. Прежде чем испортить это в базе данных, вы должны скопировать базу данных, чтобы предотвратить проблему блокировки, но не можете ее открыть (потому что вы ошибочно набираете командную строку).

Фрагмент кода 1

‘Функция ChangeProperty изменяет свойства базы данных

Функция ChangeProperty (strPropName, varPropType, varPropValue)

Dim dbs как база данных, prp как свойство

Стоимость conPropNotFoundError = 3270

Установить dbs = CurrentDb

При ошибке GoTo Change_XuLyLoi

dbs.Properties (strPropName) = varPropValue

ChangeProperty = True

Change_KetThuc:

Функция выхода

Изменить язык:

‘Атрибут не найден

Если Err = conPropNotFoundError Тогда

Установите prp = dbs.CreateProperty (strPropName, _

varPropType, varPropValue)

dbs.Properties.Append prp

Следующее резюме

Еще

‘Я не знаю, в чем ошибка

ChangeProperty = False

Возобновить Change_KetThuc

Конец, если

Конечная функция

‘Обработка ситуации выбора [Lock database] кнопка

Частная подпрограмма cmdLock_Click ()

‘Эта форма предварительно загружена

ChangeProperty «StartupForm», dbText, «frmKhoiDong»

ChangeProperty «StartupShowDBWindow», dbBoolean, False

ChangeProperty «StartupShowStatusBar», dbBoolean, False

ChangeProperty «AllowBuiltinToolbars», dbBoolean, False

ChangeProperty «AllowFullMenus», dbBoolean, False

ChangeProperty «AllowBreakIntoCode», dbBoolean, False

ChangeProperty «AllowSpecialKeys», dbBoolean, False

‘Не используйте клавишу Shift, чтобы пропустить форму frmKhoiDong

ChangeProperty «AllowBypassKey», dbBoolean, False

MsgBox «База данных заблокирована! Закройте базу данных, _

затем снова откройте его, чтобы нажать-es. », vbOKOnly,« eChip Security »

cmdExit.SetFocus

cmdUnlock.Visible = Истина

cmdLock.Visible = Ложь

Конец подписки

‘Обработка ситуации для выбора кнопки [Open database]

Частная подпрограмма cmdUnlock_Click ()

‘Форма загрузки не требуется

ChangeProperty «StartupForm», dbText, «»

ChangeProperty «StartupShowDBWindow», dbBoolean, True

ChangeProperty «StartupShowStatusBar», dbBoolean, True

ChangeProperty «AllowBuiltinToolbars», dbBoolean, True

ChangeProperty «AllowFullMenus», dbBoolean, True

ChangeProperty «AllowBreakIntoCode», dbBoolean, True

ChangeProperty «AllowSpecialKeys», dbBoolean, True

ChangeProperty «AllowBypassKey», dbBoolean, True

MsgBox «База данных разблокирована! _

Закройте базу данных, а затем снова откройте ее с одобрения прессы. «, _

vbOKOnly, «eChip Security»

cmdExit.SetFocus

txtPassword = «»

cmdLock.Visible = Истина

cmdUnlock.Visible = Ложь

txtPassword.Visible = Ложь

Конец подписки

‘Обработка ситуации при открытии формы

Private Sub Form_Open (Отменить как целое число)

Dim dbs как база данных

Установите dbs = CurrentDb

При ошибке GoTo KhongCoThuocTinh_Err

Если dbs.Properties («AllowBypassKey»), то

cmdLock.Visible = Истина

txtPassword.Visible = Ложь

Еще

cmdLock.Visible = Ложь

txtPassword.Visible = Верно

Конец, если

Дополнительный выход

Нет:

cmdLock.Visible = Истина

txtPassword.Visible = Ложь

Конец подписки

‘Когда люди вводят пароль и нажимают клавишу Enter

Частная подписка txtPassword_LostFocus ()

Если txtPassword = «echip» Тогда

cmdUnlock.Visible = Истина

Конец, если

Конец подписки

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.