Распределение прав доступа
Все современные БД позволяют в той или иной степени разделять права доступа пользователей к информации. Опишем принципиальную работу пользователя с точки зрения проверки прав доступа.
1. Началом работы является аутентификация. При этом используется учетная запись пользователя, которая образуется открытым именем пользователя и зашифрованным паролем. Учетная запись каждого пользователя хранится в определенном виде в ИС.
Например, Windows NT использует так называемую базу данных учетных записей, которые хранятся на контролерах домена NT. Lotus Notes хранит учетную запись пользователя в виде id-файла, который может помещаться на сервере, локально на рабочей станции пользователя или на дискете. При выполнении процедуры идентификации пользователь вводит свое имя и пароль, которые затем проверяются системой на правильность.
2. В случае выполнения первого шага для пользователя открывается сеанс связи с сервером. Все последующие действия выполняются от имени учетной записи, для которой он успешно ввел пароль.
3. При доступе к БД сервер проверяет, имеются ли у текущего пользователя права на ту информацию, которую он запрашивает. В случае положительного решения информация предоставляется пользователю. В случае отрицательного решения пользователю отказывается в доступе.
Итак, для каждого объекта медицинской информационной системы должен быть задан список, согласно которому сама ИС будет проверять, имеет ли данный пользователь право на доступ к этому объекту или нет. В литературе и на практике чаще всего такой список называется ACL (от англ. Access Control List — список управления доступом). Основными объектами ИС, для которых в обязательном порядке должен быть задан ACL, являются:
> информация, хранящаяся в БД;
> приложения, входящие в состав пакета программ системы;
> команды и функции в приложениях, которые могут использоваться с различным уровнем доступа.
Список управления доступом к информации в БД ИС должен указываться для:
> конкретного вида информации (поля);
> определенной области документа (например, статистической информации);
> отдельно взятого документа;
> отдельно взятой группы документов, относящихся к одному виду (например, к виду заключений лабораторной диагностики);
> отдельной базы данных, входящей в состав ИС;
> сервера.
При этом порядок проверки должен осуществляться от большого к малому, т.е. вначале необходимо пройти проверку на разрешение доступа к амбулаторной карте, затем к ее документам и т.д.
ACL объектов хранятся постоянно. Они генерируются одновременно с созданием документа несколькими способами:
1) вычислением на основании политики доступа или иного алгоритма;
2) наследованием от его предка (например, документ истории болезни может наследовать (копировать) ACL бланка истории болезни).
Изменение ACL возможно несколькими способами:
1) программным изменением, когда изменить ACL объекта может только приложение системы;
2) пользовательским изменением, когда пользователь вручную может корректировать ACL объекта.
Реакция системы на изменение ACL может быть различной. Изменение ACL сервера, каждой отдельно взятой БД или приложений, некоторых документов или отдельных полей должны протоколироваться в обязательном порядке. Администратор системы должен тщательно следить за протоколами этих изменений.
Реакция на проверку наличия текущего пользователя в ACL может быть в виде:
> скрытого отказа, когда пользователь просто «не видит» тех объектов, к которым он не имеет права доступа, — такая реакция может быть у приложения, которое динамически строит свое меню в зависимости от прав пользователя;
> непротоколируемого отказа, когда пользователю, пытающемуся получить доступ к объекту, выводится сообщение о том, что ему в доступе отказано, — такой отказ системой никак не протоколируется;
> протоколируемого отказа, когда этот факт система протоколирует в специальном журнале;
> отказ с извещением, когда пользователю в доступе отказывается и система извещает администратора или другое доверенное лицо о факте такого отказа, например, по электронной почте.
Контрольные вопросы
1. Поясните назначение банка данных.
2. Поясните назначение базы данных.
3. Поясните назначение базы знаний.
4. Перечислите функции семантического анализа.
5. Перечислите функции синтаксического анализа.
6. Перечислите функции прагматического анализа.
7. Какой режим обработки данных называется пакетным?
8. Какой режим обработки данных называется интерактивным?
9. Какой режим обработки данных называется запросным?
10. Какой режим обработки данных называется диалоговым?
11. Поясните назначение ER-диаграмм.
12. Поясните обобщенную структуру связей программ и данных при использовании СУБД.
13. Поясните трехуровневую архитектуру СУБД.
14. Что называется инфологической моделью?
15. Что называется даталогической моделью?
16. Что называется физической моделью?
17. Перечислите основные компоненты СУБД.
18. Перечислите компоненты контроллера базы данных.
19. Приведите пример многоуровневой модели медицинской информационной системы.
7.