Захист від Shift в MS Access, MS Office, Програмні керівництва, статті

Часто виникає необхідність закрити доступ користувачам до вікна проекту Access. Причини можуть бути різні:



  1. Цікаві користувачі стали «лазити» по базі і видалили макрос або «відредагували» запит (таке можливо ж і в разі c. Mde)
  2. Ви вирішили продати свою програму. Чим менше покупець буде бачити не потрібних йому елементів, тим краще (див. п. 1)
  3. Приховування вікна проекту дозволяє зробити додаток більш зручним у роботі.

Як правило, однією з ознак, що розробник «ступив» від початківця до «просунутому» частіше за все є приховування вікна програми.
Найпростішим варіантом вирішення проблеми може бути приховування вікна бази даних через стандартні настройки: Сервіс – Параметри запуску – прибрати галочку «вікно бази даних». Однак, як уже говорилося в попередній статті, такий захист настільки ж просто прибрати, утримуючи при запуску програми Shift. У тій же статті йшлося про якихось «модулях», здатних блокувати таку можливість. Познайомимося з одним із них.


Для побудови інтерфейсу захисту створимо два макроси: AutoExec, AutoKeys. З першим Ви вже знайомі по статті «Автолінковка і резервне копіювання». Другий виконує схожу роль – перехоплює натиснення клавіш на клавіатурі. Щоб він їх перехоплював, він повинен називатися AutoKeys (Зарезервоване ім’я в Access). Ще один важливий момент – в меню Сервіс – Параметри запуску приберемо всі галочки, інакше обійти захист від Shift стане вельми просто: Вікно – Відобразити – Вікно БД. Якщо ж відключити все меню, то в пункті меню «Вікно» будуть виводиться тільки режими розташування вікон, а вікно бази виводиться не буде.


В макросі AutoExec дамо команду на запуск форми FrmStart, В макросі AutoKeys – форми ВклОткШіфт. Причому форма ВклОткШіфт буде запускатися при натисненні комбінації клавіш Ctrl + Q. Для цього в конструкторі задамо ім’я макросу – ^Q.


Навіщо так мудро? Справа в тому, що якщо ми просто поставимо запуск форми в Сервіс – Параметри запуску, то при включенні захисту від Shift буде відкриватися пусте вікно Access. Ми закриємо базу взагалі для всіх, в тому числі і від себе! Для всякого замка повинен бути ключ: їм і виступає форма ВклОткШіфт – Через неї встановлюється і знімається захист. А якщо її зробити прихованої (див. нижче) і запускати через макрос (комбінацію клавіш) – ми ще більше заплутає цікавих юзерів. Саме включення відбувається через властивість бази


DBS.Properties (“AllowBypassKey”) = True (або False)


В залежності від значення пароля, введеного в поле форми «ВклОткШіфт» цій властивості присвоюється True або False. Потім база закривається (щоб зміни вступили в силу)


          DoCmd.Quit acPrompt


Отже, проведемо випробування:


Запускаємо наш додаток, утримуючи Shift – відкривається стартова форма, вікно проекту закрито. Тиснемо Ctrl + Q, вводимо 1234, тиснемо «Введення». База закривається. Знову клацаємо по базі, утримуючи Shift – відкривається стартова форма, вікно проекту відкрито! І так робимо, поки не набридне.


А тепер з приводу «прихований об’єкт». Є ще одна можливість задурити користувача. Справа в тому, що в Access є три варіанти відображення об’єктів:



Нормальний режим (у вікні бази даних не відображаються приховані та системні об’єкти) встановлено за умовчанням


Режим відображення прихованих об’єктів (у вікні бази динних не відображаються системні об’єкти)


Режим відображення системних об’єктів (відображаються всі об’єкти)


Системний об’єкт – Це вбудований об’єкт бази даних, визначений як системний, наприклад таблиця “MSysIndexes”, або системні об’єкти, визначені користувачем. Для визначення системного об’єкта необхідно, що б його ім’я починалося з символів USys. Наприклад, додайте до назви форми, таблиці, звіту USys – і вони тут же «зникнуть», стануть прихованими, але звертатися до них з програми можна так само, як зазвичай.


Щоб побачити їх, потрібно зробити наступне:


Сервіс – Параметри – Вкладка вид. У групі Відображати виберіть потрібний варіант – поставте (приберіть) галочку «Приховані об’єкти», «Системні об’єкти» і т. д.


Багатьох користувачів така «захист» здатна буде збити з пантелику: навіть зумівши відкрити програму через Shift, вони з подивом виявлять, що якийсь форми або таблиці там немає, хоча при роботі вона видна. Але на професіоналів, звичайно, така уловка не подіє – зрозуміло, вони знають про властивості об’єктів бази даних. Але, якщо врахувати, що більшість цікавих найчастіше кидають спроби «колупатися», якщо у них не вийшло з першого разу, то така «захист» заслуговує уваги.
Висновки:



  1. Захист від Shift можна застосовувати тільки за умови, що база перетворена в. Mde. В іншому випадку її легко обійти, зробивши простий імпорт всіх об’єктів в нову базу. В. Mde як відомо без декомпіляції (Злому) неможливо зробити імпорт загальних модулів, форм і звітів – найціннішого вмісту бази.
  2. Якщо ви розробляєте програми на своїй роботі, то зазвичай кращий спосіб захисту – поговорити «по душах» з користувачами (і з начальством). Захист від Shift буде служити подібно рейкові замки на гаражі – При бажанні легко розкривається, але не будь його, гараж обікрали б ще швидше.
  3. Зазвичай захист від Shift застосовують в комплексі з іншими методами: прив’язка до комп’ютера, вхід за паролем, шифрування даних і т. д.

Приклад, як це все працює, Ви можете завантажити нижче.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*