Предназначение большинства информационных систем подразумевает хранение и использование больших объемов информации, а также доступ к ним широкого круга лиц. В то же время защита данных от несанкционированного доступа является важнейшей задачей при разработке и функционировании любой информационной системы.
Взаимодействие пользователей и программных приложений с базами данных осуществляется под контролем системы управления базами данных (СУБД), которая является доминирующим инструментом в обеспечении требуемого уровня безопасности информационной системы.
Большинство известных корпоративных СУБД реализуют управление доступом именованных пользователей к именованным объектам, что частично обеспечивается СУБД, поддерживающими стандарт SQL.
Обычно разграничение доступа к поименованным информационным объектам базы данных (таблицам, представлениям, процедурам и т. п.) ограничивается полным набором данных, предоставляемым тем или иным пользователям. В то же время существуют задачи, требующие управления доступом на более низком уровне. Так, в информационной системе поликлиники списки пациентов и их диагнозы могут храниться в одном файле или таблице. Врачи должны иметь доступ к данным только своих пациентов (разграничение на уровне записей), а сотрудники регистратуры — к необходимой общей информации о пациенте.
Аналогичные требования могут предъявляться к информационным системам другого назначения, в частности тем, в которых хранятся персональные данные.
Ячейка таблицы является минимальным уровнем, на котором необходимо разграничение доступа к информации в базе данных.
В реляционных СУБД можно выделить следующие пять уровней разграничения доступа:
- cервер СУБД;
- база данных;
- таблица;
- запись таблицы;
- ячейка записи.
Разграничение доступа на первых трех уровнях реализуют механизмы, встроенные в СУБД и/или предусмотренные операционными системами.
В современной терминологии разграничение доступа к информации в базах данных на уровне записей носит название RLS (row level security), а на уровне ячеек — CLS (cell level security).
Большинство СУБД вообще не имеют встроенных средств контроля доступа к данным на уровне записей и ячеек. Тем не менее некоторые СУБД содержат функциональность, потенциально достаточную для реализации разграничений доступа на этих уровнях.
< ... >