Главная страница

Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33


Скачать 19.64 Mb.
НазваниеКраткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
АнкорAccess_2007.doc
Дата16.03.2017
Размер19.64 Mb.
Формат файлаdoc
Имя файлаAccess_2007.doc
ТипКраткое содержание
#3862
страница53 из 65
1   ...   49   50   51   52   53   54   55   56   ...   65

Р
ис. 18.8.
Этот файл с расширением accdr использует искусную кнопочную форму

Подсказка

Исполняемая среда Access — действительно полезный способ совместного использования БД без покупки несметного количества лицензий Access и забивания голов пользователей много­численными свойствами интерфейса полнофункциональной версии программы Access. Если вы координируете деятельность маленькой коммерческой компании, она вполне подходит.

Уголок ностальгии.

Отмирание страниц доступа к данным
У программы Access 2003 было средство, названное страницами доступа к данным и предназначенное для создания клиентской части БД в виде Web-страницы. Идея была замечательная — с помощью таких Web-страниц любой пользователь мог просматри­вать информацию в вашей БД или вносить в нее изменения, даже не имея программы Access.

К сожалению, у Access и Web натянутые отношения. Как вы уже знаете, программа Access может обрабатывать только ограниченное число одновременных обращений.

У Web-технологий нет таких ограничений. В действительности размещение БД в Ин­тернете равносильно приглашению полчищ пользователей для попыток одновременно­го использования БД. По этой причине, как и по некоторым другим (например, труд­ность настройки страниц доступа к данным и отсутствие совместимости с другими обозревателями), корпорация Microsoft отказалась от этого средства в Access 2007.

Если вы все же хотите придать Web-обличье вашей БД, программа Access мало чем мо­жет помочь вам. Лучшим выбором будет перенос БД на серверный программный про­дукт, например SQL Server, и применение другого средства разработки для построения Web-страницы. Серьезные программисты любят ASP.NET (см. www.asp.net), единый комплект корпорации Microsoft для создания Web-сайтов, от простейших до самых сложных.

Многопользовательский доступ
Многопользовательский доступ — это вечное жонглирование. Если все пользователи хотят читать информацию, все просто. Но в тот момент, когда они захотят внести изменения, мо­гут возникнуть серьезные проблемы. Например, что произойдет, когда два пользователя попытаются одновременно изменить одну и ту же запись? Или, когда вы пытаетесь изме­нить запись, кто-то еще старается ее удалить? Или же вы хотите прочесть свежие данные во время процесса обновления?

Ясно, что программе Access нужен способ управления хаосом. В этом разделе вы узнаете, что делает Access для того, чтобы все держать под контролем, и как можно регулировать этот процесс. Вы также научитесь предупреждать возникновение опасных ситуаций, спо­собных привести к повреждению данных.

Как вносятся изменения
Представим себе следующий сценарий. Вы говорите по телефону с расточительным клиен­том компании Boutique Fudge. Используя вашу надежную БД Access, вы просматриваете имеющиеся в наличии товары и сообщаете вашему клиенту цену каждого из них. А в это же время главный повар без вашего ведома просматривает ту же таблицу и повышает цены на самые популярные блюда. Возникает вопрос: когда вы заметите, что цены выросли?

Программа Access обрабатывает ситуации, подобные этой, с помощью автоматических обновлений. Каждые 60 секунд Access проверяет клиентскую БД, чтобы выяснить, что из­менилось. Затем программа обновляет соответствующую информацию на вашем экране, если вы просматриваете форму, запрос или непосредственно таблицу. В примере с Boutique Fudge новые цены появятся после очередного обновления, выполняемого программой Access, но не позже 60 секунд, после внесения изменений.

Из правила обновления есть несколько исключений.

  • Когда начинается редактирование записи (щелчок кнопкой мыши в одном из полей), Access немедленно обновляет именно эту запись. Это действие гарантирует, что перед тем как вносить изменения, вы получите самую свежую копию записи.

  • Если вы не можете ждать 60 секунд и вас беспокоят возможные изменения с момента последнего обновления, можно запустить немедленное обновление с помощью команды Главная Записи Обновить все (Home Records Refresh All). Если щелкнуть

мышью часть кнопки команды с нарисованной стрелкой, направленной вниз, можно вы­брать обновление только текущей записи, в которой находится курсор (выберите коман­ду Обновить (Refresh) вместо команды Обновить все (Refresh All)).

■ В отчетах не применяется автоматическое обновление. Если вы формируете отчет, подо­ждите, а затем решите, нужно ли обновлять результаты. У вас есть два варианта. Можно закрыть отчет и снова открыть его или использовать кнопку на ленте Обновить.

Е
сли вам не нравится правило 60 секунд, можно настроить частоту повторения автома­тических обновлений программой Access. Для этого выберите кнопку Office Параметры Access (Office Access Options). В окне Параметры Access выберите категорию парамет­ров Дополнительно (Advanced) и прокручивайте перечень, пока не увидите параметр Пери­од обновления (с) (Refresh interval (sec)) (рис. 18.9).
Рис. 18.9. Период обновления определяет, как часто программа Access проверяет в многопользовательской БД внесение изменений. Можно выбрать значение секундах) от 1 до 32 766
Примечание

Период обновления (с) — параметр программы Access, влияющий на все многопользова­тельские БД, открываемые на данном компьютере. Если вы хотите, чтобы все использовали одинаковый период обновления, необходимо, чтобы все пользователи обновили свои пара­метры Access.

Чем короче период обновления, тем быстрее вы увидите изменения, внесенные другими пользователями. Но укороченные интервалы обновления создают дополнительный трафик в вашей сети. Многие любители программы Access знают, что можно спокойно применять более короткий период обновления, если используется медленная сеть.

Обработка конфликтов редактирования
Многопользовательские БД — пример неограниченной свободы. Обычно программа Access не накладывает никаких ограничений на многопользовательские корректировки. Если пове­зет, пользователи будут вносить изменения в определенном порядке, один за другим. Но рано или поздно, изменения наложатся друг на друга и, возможно, с серьезными последст­виями.

Далее приведен пример, показывающий, к чему приводит наложение изменений.

  1. Вы открываете запрос, отображающий все товары в БД Boutique Fudge.

  2. Ищите запись — самый хорошо продаваемый чизкейк с названием Chocolate Abyss, нуждающийся в изменении. Для того чтобы начать редактирование, вы щелкаете кнопкой мыши в поле Description.

  3. В это же время Билл Эванс (Bill Evans) в отделе продаж запускает форму, которая тоже использует таблицу Products. Он добирается до той же самой записи и, догадываясь о возможности получений большей прибыли, начинает изменять цену. Теперь два пользователя работают одновременно с одной записью. Что произойдет дальше, зависит от того, кто первым зафиксирует свои изменения.

  4. Допустим, что Билл выполнил свою работу первым. В мгновение ока он повысил цену и перешел к другой записи.

  5. Вернемся к вашему компьютеру, вы закончили исправление поля Description и переходите к другой записи. Обычно в этот момент программа Access фиксирует ваши изменения, сохраняя их в серверной БД. Но в данном случае Access замечает противоречие — а именно, версия записи, с которой вы работаете, не совпадает с текущей версией записи в БД.

  6. A
    ccess предупреждает вас о проблеме и предоставляет три возможных варианта ее ис­
    правления (рис. 18.10).

Рис. 18.10. Между временем начала вашего редактирования и моментом внесения его в БД кто-то еще внес изменения. Программа Access разрешает выбрать вариант обработки возникшей конфликтной ситуации

Разрешить конфликтную ситуацию можно тремя способами.

Вариант Сохранить запись (Save Record) — самый легкий и самый опрометчивый. Если выбрать его, программа Access запишет вашу версию записи поверх имеющейся в БД. Проблема состоит в том, что этот вариант аннулирует изменения, сделанные другим пользователем. В предыдущем примере в БД будет сохранено новое описание товара, но потеряется изменение цены, поскольку Access запишет ее прежнее устаревшее значение.

В
ариант Отменить изменения (Drop Changes) отменяет ваше редактирование. Access обновит запись и отобразит самую свежую информацию, а затем вы можете попытаться внести ваше изменение снова. Этот вариант заслуживает внимания, если вы легко смо­жете повторить редактирование, но его нельзя считать хорошим выбором, если вы толь­ко что закончили подробное обновление большого текстового поля.

Вариант Копировать в буфер (Copy to Clipboard), как и предыдущий вариант, отменяет ваше редактирование. Однако значения, которые вы изменили, копируются в буфер, что облегчит повторное их применение, как показано на рис. 18.11.
Рис. 18.11. Если результаты последнего редактирования скопированы в буфер, понадобятся два шага для повторного их внесения. Сначала вставьте их в другую программу (например, показанную здесь программу Word). Затем выделите данные, которые хотите использовать, и снова скопируйте их в буфер с помощью комбинации клавиш +. И, наконец, перейдите в окно программы Access к полю, которое хотите изменить, и вставьте новое значение, нажав комбинацию клавиш +

Обычно лучше всего копировать в буфер и пытаться повторить редактирование. К сожа­лению, людей невозможно заставить поступать правильно. Ленивые работники могут вы­брать более быстрый вариант Сохранить запись, который незаметно уничтожит чью-то ра­боту. Хуже всего, что у пользователя, выполнившего изменение первым, нет возможности узнать, что его работа пошла насмарку. Если у вас в организации много накладывающихся корректировок, придется потратить много времени на обучение персонала правилам пове­дения при обработке подобных ситуаций.

Примечание

Любители Access часто говорят о том, что им хотелось бы иметь возможность объединять из­менения, т. е. обновлять только те поля, которые менялись. В предыдущем примере такая воз­можность позволила бы применить новое описание поля без повреждения изменения цены, сделанного предыдущим пользователем, поскольку оба обновления воздействуют на разные поля. Но программа Access не предоставляет такого варианта. Одна из причин — отсутствие возможности проверить непротиворечивость обоих изменений. Нет ничего хуже записи, проти­воречащей самой себе.

Практические занятия для опытных пользователей.

Разделение таблиц для более безопасных корректировок
Один из способов снижения числа накладывающихся корректировок — разделение таб­лицы на более мелкие фрагменты. Основная идея — взять единую таблицу с большим числом полей и разделить ее на две меньшие таблицы, каждая из которых включает только некоторое число этих полей. Например, можно взять таблицу Customers (клиенты) и разделить на таблицу CustomerAddress (адрес клиента) и таблицу CustomerFinancial (финансовая информация клиента). Каждая запись таблицы CustomerAddress связана с единственной записью таблицы CustomerFinancial с помощью от­ношения "один-к-одному". Для получения всей информации о клиенте вам понадобятся обе записи.

Лучше всего делить таблицу, когда вы выясните, что типичное редактирование включа­ет поля только из одной таблицы. Возможно, вы знаете, что отдел по обслуживанию клиентов часто обновляет адресные данные, а финансовый отдел работает с финансо­выми сведениями, в этом случае разделение таблицы — прекрасная идея. Отдел по об­служиванию клиентов будет использовать таблицу CustomerAddress почти монополь­но, а финансовый отдел будет работать с таблицей CustomerFinancial. Вероятность наложения корректировок резко снижается, поскольку обработка делится между двумя таблицами.

Применение блокировок для предотвращения наложения обновлений
Если накладывающиеся изменения вызывают слишком много проблем, у вас есть еще одна возможность. Можно применить программный трюк, именуемый блокировкой, препятст­вующей наложению корректировок.

По существу блокировка использует ту же идею, которая мешает двум людям встретить­ся в одной туалетной кабинке. Когда один человек заходит, он или она включает блокировку и все остальные вынуждены ждать, пока дело не будет сделано. Аналогичным образом, когда пользователь пытается изменить запись, программа Access начинает с установки блокиров­ки этой записи. Любой другой пользователь, желающий внести изменения, вынужден ждать, пока не завершится первая операция.

Самый легкий способ применения блокировок — включение их с помощью параметров Access. Для этого выберите кнопку Office → Параметры Access (Office Access Options), Затем перейдите к категории Дополнительно (Advanced) и найдите параметр Блокировка по умолчанию (Default record locking).

У вас есть три следующих варианта для выбора.

  • Вариант Отсутствует (No locks) — это стандартная установка в программе Access. Когда применяется этот вариант, Access вообще не будет использовать блокировки и наложе­ние корректировок становится возможным.

  • Вариант Всех записей (All records) заставляет программу Access блокировать всю таблицу целиком, если кто-либо начнет редактировать запись. Это значение применяется крайне редко, поскольку оно блокирует все записи и препятствует работе с таблицей кого бы то ни было, если вносится хотя бы одно изменение. Такое ограничение может ввести любую организацию в тяжелый ступор.

  • Вариант Изменяемой записи (Edited record) блокирует отдельные записи, когда они редактируются, что препятствует наложению корректировок.

П
оследний вариант — наиболее распространенный вид блокировок. Когда применяется блокировка отдельных записей, программа Access не разрешит начать редактирование запи­си, если в данный момент кто-то еще ее изменяет. Когда вы сделаете попытку, Access выве­дет на экран пиктограмму, обозначающую блокировку записи, показанную на рис. 18.12.
Рис. 18.12. Символ "Вход воспрещен" предупреждает о необходимости ожидания вместо редактирования записи, которая уже используется. Если вы все же попытаетесь ввести данные в поле, программа Access решительно проигнорирует вашу попытку

Блокировки мешают превращению вашей БД в груду беспорядочных сведений, но они порождают другие проблемы. Программа Access вынуждена выполнять дополнительную работу по отслеживанию каждой блокировки — она должна действовать как перегруженный работой "умывальников начальник", выдающий ключи от кабинок. Access отслеживает бло­кировки, создавая файл с расширением laccdb. Например, когда кто-то в первый раз откры­вает БД с многопользовательской поддержкой BoutiqueFudge_be.accdb, программа Access создает файл, названный BoutiqueFudge_be.laccdb. (Символ "l" обозначает "locking" (блокировка).) Когда последний пользователь закрывает БД, Access удаляет файл с блоки­ровками.
Подсказка

Если вы загляните в папку с общим доступом и не увидите там файла с расширением laccdb, знайте, что в этот момент никто не использует БД или же кто-то открыл ее с монопольным дос­тупом (Exclusive mode).

Кроме того, блокировки тормозят работу остальных пользователей, заставляя их ждать нужные им данные. Небрежный пользователь может прекратить работу с записью на неоп­ределенное время, оставив ее в режиме редактирования.

Примечание

Отправляясь на перерыв, вы можете свернуть работу всей компании, даже не догадываясь об этом. Еще хуже то, что хотя потенциальные редакторы будут видеть, что запись заблокирова­на, они никак не смогут установить кто — причина их бед. Им остается только ждать и ждать.

Если вы все же решили применять блокировки, гораздо лучше использовать их в от­дельных формах, а не включать во всех БД с помощью параметров программы Access. Мож­но использовать для всей БД стандартное значение для блокировки Отсутствует (No locks), но задать применение блокировок во всех формах, использующих особенно важную таблицу, скажем Invoices (счета).

Для изменения способа обработки блокировок в формах откройте Окно свойств (Property Sheet) и найдите свойство Блокировка записей (Record Locks). Оно поддержива­ет те же три значения: Отсутствует (No Locks) (значение по умолчанию), Всех записей (All Records) и Изменяемой записи (Edited Record).

Примечание

Этот прием оставляет открытой дверь черного хода. Если кто-то решит внести изменение, от­крыв непосредственно таблицу, он обойдет блокировки, которые вы установили в своих фор­мах. Как всегда, людей легко направить верным путем, но трудно удержать их на этом пути.

Открытие БД с монопольным доступом
Одно из ограничений БД с многопользовательской поддержкой — невозможность изменять структуру таблиц во время работы пользователей с БД. Прежде чем вы сможете внести ра­дикальные изменения, нужно открыть БД с монопольным доступом (Exclusive mode).

Монопольный доступ временно предоставляет БД в единоличное пользование одному человеку. Когда БД открыта с монопольным доступом, никто другой не может к ней обра­щаться, независимо от того, какую клиентскую БД они используют. У вас есть драгоценное время для выполнения радикальных изменений, которые обычно вы не можете внести.

Для того чтобы открыть БД с монопольным доступом, выполните следующие действия.

1. Попросите всех пользователей закрыть БД.

Вы не сможете открыть БД с монопольным доступом, если она кем-то используется в на­стоящий момент. В большой компании это самый трудный этап. Иногда системные ад­министраторы прибегают к помощи электронной почты, чтобы дать всем знать, что при­шло время завершать работу. Другой вариант — научить пользователей, работающих с вашей БД, закрывать ее всегда на ночь, прежде чем уйти домой, что позволит вам без по­терь дремать во время обновления, проводимого в ночные часы.

  1. Выберите кнопку Office → Открыть (Office Open).
    На экране появится окно Открытие файла базы данных.

  2. Выберите файл БД, который хотите открыть, и щелкните кнопкой мыши направленную вниз стрелку на кнопке Открыть (Open).

На экране появится список специализированных параметров открытия вашего файла (рис. 18.13).

4. Выберите Монопольно (Open Exclusive).

Программа Access откроет БД. Теперь можно внести изменения без каких-либо ограни­чений. Но действуйте быстро — чем дольше вы держите БД открытой с монопольным доступом, тем дольше другие пользователи вынуждены ждать момента, когда они смогут приступить к своей работе.
Р
ис. 18.13.
Если открыть БД Монопольно, никто яругой не сможет ее открыть, пока вы ее не закроете. Если открыть файл в режиме Открыть для чтения, нельзя будет внести никакие изменения

Примечание

Можно настроить программу Access так, что она всегда будет пытаться открыть любую БД мо­нопольно. Но для такого подхода редко появляются основания, поскольку он сводит на нет многопользовательскую поддержку.

Повреждение данных
Повреждение или нарушение целостности данных — термин, вселяющий страх в сердца стойких гуру Access. Будем надеяться, что пользователи вашей БД, будут вести себя

достойно, сеть в, которой она размещена, будет надежной, а вашей БД никогда не будет угро­жать опасность. Но если судьба не будет к вам столь благосклонна, важно быть готовым к ее ударам.

Повреждение данных — многосмысловой термин, описывающий, что происходит, когда повреждается часть файла БД. Представим себе Джессику Бакстер (Jessica Baxter), которая успела внести половину большого обновления, когда произошло отключение питания (или какой-то шутник в офисе выдернул ее сетевой кабель). Серверная БД останется с недосто­верными данными, поскольку была получена только часть информации Джессики. В ре­зультате запись, с которой она работала, может быть искажена до неузнаваемости. Если же вы особенно невезучи, проблема может затронуть несколько записей или заставить всю БД вести себя странным образом.

Диагностика и корректировка поврежденных БД
Все специалисты Access должны обладать базовыми навыками выживания в случае повреж­дения данных. Во-первых, вы должны уметь определять, когда БД испортилась. Далее пере­числены некоторые признаки, сигнализирующие об этом.

  • Загадочные сообщения об ошибках, которые появляются без видимой причины, например, "нехватка памяти" (out of memory). (Имейте в виду, что их не следует путать с всегда популярной категорией непонятных сообщений об ошибках, отображаемых на законных основаниях, например таких, как "файл уже используется" (file already in use).)

  • Строки, содержащие тарабарщину, вроде ### или ???. Обычно подобные значения встречаются в последних нескольких строках поврежденной БД, что свидетельствует о том, что пострадало только несколько новых вставок, а остальное содержимое, возможно, корректно.

  • Полная невозможность использования БД. Если вы получаете ужасную ошибку "Unrecognizable database format" ("Нераспознаваемый формат базы данных"), знайте - беда пришла.



Как только вы установили, что БД повреждена, самое время начинать ее лечить, чтобы вернуть ей здоровье. Первое средство — сжатие и восстановление, которые ликвидируют узел проблем и возвращают непомерно разросшимся, раздутым БД приемлемые размеры. Для опробования этого средства откройте вашу БД с монопольным доступом и выберите кнопку Office Управление Сжать и восстановить базу данных (Office Manage Compact and Repair Database). Процесс может потребовать некоторого времени, особенно в случае больших БД.

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

Примечание

Прежде чем исправлять поврежденную БД, немедленно сделайте резервную копию. В этом случае вы сможете испробовать несколько стратегий восстановления.

Иногда сжатие и восстановление не решают проблему или могут лишь частично исправить файл вашей БД. В этом случае пора воспользоваться другим методом восстановления, Если оставшиеся проблемы не значительны (например, несколько строк с подозрительными данными), можно просто удалить бракованные данные и ввести их снова. Но иногда

программа Access отказывается отображать испорченные записи без многочисленных сообще­ний об ошибках. Если вы столкнулись с такой ситуацией, выберите все корректные записи и скопируйте их в другую таблицу. Затем удалите таблицу с испорченными данными и при­свойте ее имя сделанной вами копии.

Последним средством спасения может стать создание новой пустой БД и попытка им­портировать в нее таблицы серверной БД с помощью операции импорта. Это действие за­ставит программу Access создать заново каждый объект и перестроить каждый индекс. Если и это сработает не до конца, возможно, вам удастся импортировать большую часть таблиц.

И самое последнее средство — возврат к последней резервной копии БД. Вы ведь храни­те резервные копии, не правда ли?

Предупреждение повреждений
Приведенные далее рекомендации могут помочь сделать редким такое жуткое событие, как повреждение данных.

  • Придерживайтесь благоразумных установок по умолчанию, описанных в разд. "Как действует многопользовательская поддержка в Access" ранее в этой главе. Если десятки пользователей попытаются внести изменения одновременно, шансы появления проблем многократно увеличатся.

  • Всегда разделяйте БД, чтобы облегчить загрузку серверной части и держать формы и отчеты в безопасном месте.

  • Используйте надежную сеть. Если ваше сетевое соединение не заслуживает доверия, обновление может быть прервано, а это одна из главных причин нарушения целостности данных.

  • Приучите пользователей закрывать БД, когда они закончили ее использование или даже просто прервались на завтрак.

  • Регулярно применяйте средство сжатия и восстановления к вашей серверной БД (выберите из меню Office последовательность Управление Сжать и восстановить базу данных (Manage Compact and Repair Database)). Чем больше людей вносят изменения, тем сильнее разрастаются файлы БД и становятся более неорганизованными. Команда сжатия и восстановления реорганизует БД, делая ее более эффективной, более компактной и менее подверженной сбоям.

  • Делайте резервные копии как можно чаще. В зависимости от частоты внесения изменений может оказаться достаточным ежедневное резервное копирование. Но ничто не мешает вам создавать резервные копии каждый час или чаще, если это необходимо.



Подсказка

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

Защита базы данных
В большинстве многопользовательских БД разные пользователи выполняют различные задачи. Легче всего удержать каждого на верном пути, если создать несколько отдельных

клиентских БД, по одной для каждой группы пользователей. Это позволит мягко управлять пользователями в соответствии с выполняемыми ими задачами.

Однако настройка клиентской БД не ограничит возможности упрямого злоумышленни­ка. В большой компании, рассчитывающей на многопользовательскую БД, вы думаете не о руководстве пользователями, а скорее об ограничении их возможностей.

К сожалению, у программы Access 2007 очень ограниченная модель безопасности. Вы можете защитить БД от посторонних с помощью пароля, но у вас нет более тонко настраи­ваемых средств, необходимых для запрета использования конкретных таблиц или выполне­ния определенных действий тем или иным пользователем. Как вы увидите в следующих разделах, обходные средства все-таки есть, но ни одно из них не сравнится с уровнем безо­пасности, обеспечиваемым системой управления серверной БД, такой как, например, SQL Server.
Подсказка

И снова программа Access предлагает достаточно для того, чтобы многопользовательские БД могли работать, но не более того. Вам решать, подойдет ли Access для вашей организации. Маленькие фирмы, вероятно, сочтут программу отличной, а большим организациям, возможно, понадобится серверное программное обеспечение.

Уголок ностальгии.

Защита с помощью рабочих групп упразднена
Опытные специалисты Access, может быть, помнят, что в предыдущие версии Access

была включена гораздо более полезная форма защиты на уровне пользователя, назы­ваемая защитой с помощью рабочих групп. Программа Access хранила отдельный файл, в котором определялось, что разрешено делать с БД каждому пользователю и группе. Та­кую защиту легче реализовать, чем защиту на уровне файлов, и она гораздо гибче. На самом деле она представляется прекрасным решением.

К сожалению, защита с помощью рабочих групп никогда не обеспечивала настоящей защиты. Для ее преодоления могли использоваться широко доступные программист­ские приемы. Чаще всего это не представляло серьезной проблемы, потому что специа­листы Access по-настоящему не стремились остановить умелых хакеров. Они больше заботились о сохранении контроля над обычными пользователями.

Однако в последние годы корпорация Microsoft зациклилась на безопасности. Когда она готовила к выпуску Access 2007, было решено больше не поддерживать средство безо­пасности, которое на самом деле ненадежно, особенно когда в других программных про­дуктах, например, свободно распространяемой версии SQL Server, доступны лучшие механизмы. По этой причине корпорация Microsoft отказалась от поддержки безопасно­сти с помощью рабочих групп в файлах с расширением accdb. Это средство все еще можно применять в более старых файлах с расширением mdb, но это стоит делать, толь­ко если вам нужно сохранить поддержку БД, которую вы проектируете, старой версией программы Access. Новые файлы всегда должны создаваться в формате accdb — помимо всего прочего, Access представляет его как формат будущего для БД.

Защита паролем
Защиту БД паролем программа Access предлагает как простое, без излишеств средство за­щиты. Вы выбираете единый пароль для вашей БД и с этого момента ее нельзя открыть без данного пароля. Более того, данные в вашей БД шифруются с помощью ключа, который генерируется из вашего пароля. Это гарантирует невозможность извлечения каких-либо данных, даже если технически грамотные хакеры сумеют пробраться непосредственно в файл БД с помощью специализированных средств.
Примечание

В Access 2007 защита паролем стала довольно серьезной. Программа применяет искусное шифрование, не позволяющее умелым хакерам взломать ваши файлы с помощью специаль­ных средств — по крайней мере, не посвятив решению этой задачи довольно много времени.
Применить пароль до смешного просто. Вот как это делается.

1. Выберите кнопку Office Открыть (Office Open).

Для применения пароля следует открыть вашу БД монопольно. Этот шаг необходим, по­скольку программа Access не может шифровать БД, пока она используется кем-то.

2. Выделите файл, который хотите открыть, щелкните мышью направленную вниз стрелку на кнопке Открыть (Open) и выберите строку Монопольно (Open Exclusive).

П
рограмма откроет БД с монопольным доступом.

3. Выберите на ленте Работа с базами данных Работа с базами данных Зашифровать паролем (Database Tools Database Tools Encrypt with Password).

Access запросит пароль (рис. 18.14).
Рис. 18.14. Для большей уверенности программа Access попросит ввести пароль дважды
4. Введите пароль и щелкните мышью кнопку ОК.

Для того чтобы защитить вашу БД как следует, необходимо выбрать усиленный пароль. Хороши длинные пароли (10 символов или больше), такие, которые нельзя найти в сло­варях (хакеры используют словари для запуска автоматических атак) и содержащие спе­циальные символы (например, цифры, знаки пунктуации и другие символы). Пароль hellodata — плохой выбор, пароль w0nDER_wh@t_32 гораздо надежнее.

Программа Access применяет пароль для шифрования вашей БД и затем автоматически сохраняет ее. Теперь при следующем открытии БД прежде всего программа запросит у вас пароль.

Если позже вы решите, что вам для защиты не нужен пароль, щелкните кнопкой мыши команду на ленте Расшифровать базу данных (Remove Database Password and Encryption).

Пароли и разделенные БД
Как пароли действуют в обычных БД, абсолютно понятно, но при работе с разделенными БД есть несколько интересных особенностей. Прежде всего, пароль всегда применяется для защиты серверной БД — в конце концов, защищать нужно именно данные, а не ваши формы и отчеты. Но тут есть интересная деталь: когда создается клиентская БД, которая связана с защищенной паролем серверной БД, программа Access спокойно сохраняет пароль в кли­ентской части. Это означает, что пока вы используете подходящую клиентскую БД, вам во­обще не нужно вводить пароль.

Примечание

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

С технической точки зрения эта модель не обеспечивает безопасности промышленного уровня, поскольку ловкий хакер сможет украсть пароль, пробравшись в файл клиентской БД. Но до тех пор, пока вы уверены в том, что ваши клиентские БД не попадут в чужие руки, можно воспользоваться несколькими интересными возможностями.

  • Можно сохранять пароль в тайне, что помешает пользователям обращаться к серверной БД напрямую. Вместо этого они должны полагаться на предоставленную вами клиентскую БД со встроенным паролем.

  • Клиентскую БД можно защитить другим паролем. В этом случае коварный хакер, крадущий пароль вашей клиентской БД, будет все равно отрезан от БД.

  • Можно разделить серверную БД на отдельные файлы. В этом случае каждому файлу можно присвоить свой пароль и помешать доступу пользователей к неподходящим таблицам. Если у их клиентской БД нет связи с нужной серверной БД, они не смогут использовать эти таблицы.



Применение защиты файлов ОС Windows
Защита паролем — не единственный доступный вам вариант защиты. Можно также исполь­зовать защиту ОС Windows для задания конкретных пользователей и групп, которые могут получить доступ к файлу.

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

1. Используйте Проводник Windows, щелкните правой кнопкой мыши файл БД, который хотите защитить, и выберите строку Свойства (Properties).

На экране появится окно Свойства (Properties) с несколькими вкладками, содержащими информацию о файле.

2. Выберите вкладку Безопасность (Security) (рис. 18.15).

О
С Windows отслеживает пользователей двумя способами — она определяет каждого с помощью уникального имени пользователя и формирует группы пользователей с по­мощью имен групп. Например, вы можете зарегистрироваться как MarkНamlon и быть членом нескольких групп, включая группы Пользователи, Администраторы, ОтделПродаж и т. д. Это дает возможность администратору изменять параметры безопасности для отдельного пользователя или для группы людей с помощью единственного правила.
Рис. 18.15. На вкладке Безопасность перечислены все пользователи (и группы), которым разрешено использовать данный файл, и указано, что именно им разрешено делать. В данном примере все имена пользователей и групп начинаются с РС-12, поскольку имя компьютера, на котором определены учетные записи пользователей, — РС-12

3. Для того чтобы изменить для группы или пользователя набор действий над файлом, вы­берите их в списке и затем измените параметры Разрешить (Allow) или Запретить (Deny) (рис. 18.16).

Скажем, вы не хотите, чтобы люди из группы Пользователи (Users) имели доступ к это­му файлу; выделите группу Пользователи в списке и установите флажки в столбце Запретить (Deny) для каждого разрешения.

Примечание

Параметры в столбце Запретить (Deny) всегда обладают более высоким приоритетом. Напри­мер, если пользователь — член двух групп и одной группе разрешено использовать файл, а другой нет, параметр Запретить (Deny) переопределяет что бы то ни было.





Рис. 18.16. Если флажок тускло-серый — значит, параметр наследуется, т. е. он основан на значении для папки, содержащей этот файл. Например, невозможно изменить параметры в столбце Разрешить для группы Пользователи, поскольку они наследуются. Но можно добавить установки в столбец Запретить (как показано для пользователя с именем Внешний пользователь). Установки в столбце Запретить всегда побеждают установки в столбце Разрешить

4. Если вы хотите добавить в список нового пользователя или группу, щелкните мышью кнопку Добавить (Add), задайте имя пользователя или группы и нажмите кнопку ОК.

Быть может, вы решите заблокировать не всю группу, а выделить конкретного пользова­теля.

Защита файлов ОС Windows предоставляет стандартный уровень защиты. Она разрабо­тана не для работы с БД Access. Для ее более полного использования придется делить вашу БД на все более и более мелкие части, которыми, может быть, трудно управлять. Вы также не можете управлять набором действий, которые разрешены пользователю, — защита фай­лов либо блокирует пользователей целиком, либо предоставляет им полный контроль над добавлением, удалением, обновлением и реорганизацией информации в вашей БД.

Если нужна действительная защита на уровне пользователя, вам больше подойдет сер­верный программный продукт, например, SQL Server. Если же просто необходимо поме­шать доступу к некоторой конфиденциальной информации, средства защиты файлов могут вас выручить.

1   ...   49   50   51   52   53   54   55   56   ...   65


написать администратору сайта