Фуфаев - Разработка и эксплуатация удалённых БД (1084483), страница 34
Текст из файла (страница 34)
К программно-аппаратным методам зашиты информации в базах данных относятся авторизация пользователей, применение представлений, резервное копирование и восстановление, шифрование и создание массивов независимых дисковых накопителей. Авторизация пользователей Авторизация пользователей — это представление прав (привилегий), позволяюших их владельцу иметь законный доступ к информации в базах данных или к системе управления базами данных, или к отдельным ее объектам. В данном определении термин владелец означает физическое лицо или программу, а термин объект — любой компонент СУБД, который может быть создан в рамках конкретной системы (таблица базы данных, представление, приложение, триггер и т.п.).
Программы, обеспечиваюшие авторизацию пользователей, называют средствами управления доступом. Процесс авторизации подразумевает необходимость аутентификации пользователя и предоставления ему привилегий и прав владения. Аутентификация. Способ определения того, что пользователь является тем, за кого себя выдает, называется аутентификацией.
За предоставление доступа к компьютерной системе обычно отвечает системный администратор, в обязанности которого входит создание учетных записей пользователей. Каждому пользователю присваивается уникальный идентификатор, используемый операционной системой для определения «кто есть кто». С каждым идентификатором связан определенный пароль, выбираемый пользователем и известный операционной системе.
При регистрации пользователь должен предоставлять системе свой пароль для выполнения аутентификации, т.е. определения, является ли он тем, за кого себя выдает. Подобная процедура позволяет организовать контролируемый доступ к компьютерной системе„но не обязательно предоставляет право доступа к СУБД или какой-либо прикладной программе. 174 Для получения пользователем права доступа к СУБД может применяться отдельная процедура. Ответственность за предоставление прав доступа к СУБД обычно несет администратор базы данных, в обязанности которого входит создание отдельных идентификаторов пользователей для работы с конкретной базой данных. В одних СУБД ведется список идентификаторов пользователей и связанных с ними паролей, отличающийся от аналогичного списка, поддерживаемого операционной системой, а в других— ведется список, записи которого сверяются с записями списка пользователей операционной системы с учетом текущего регистрационного идентификатора пользователя.
Это предотвращает возможность регистрации пол -ователя в среде СУБД под идентификатором, отличным от того, который он использовал при регистрации в системе. Привилегии. Как только пользователь получает право доступа к СУБД, ему автоматически предоставляются различные привилегии, связанные с его идентификатором. В частности, привилегии могут включать в себя разрешение на доступ к определенным базам данных, таблицам, представлениям и индексам, а также разрешение на создание этих объектов или же право вызывать на выполнение различные утилиты СУБД.
Привилегии предоставляются пользователям лишь для того, чтобы они могли выполнять задачи, которые входят в круг их непосредственных должностных обязанносте".. Предоставление излишних привилегий может привести к нарушению защищенности баз данных. Некоторые типы СУБД функционируют как закрытые системы, и их пользователям помимо разрешения на доступ к самой СУБД требуется иметь отдельные разрешения на доступ к конкретным ее объектам. Эти разрешения выдаются администратором базы данных с разрешения владельцев соответствующих объектов системы. В отличие от закрытых открытые системы по умолчанию предоставляют пользователям, прошедшим аутентификацию, полный доступ ко всем обьектам базы данных.
Стандарт 1БО/ЕС9075:2003 определяет следующий набор привилегий языка Б( НЕс ЯЕ1 ЕСТ вЂ” право выбирать данные из таблицы; 1ХЬЕКТ вЂ” право вставлять в таблицу новые строки; 13РРАТŠ— право изменять данные в таблице; РЕ1.ЕТŠ— право удалять строки из таблицы; КЕРЕКЕХСЕБ — право ссылаться на столбцы указанной таблицы в описании требований поддержки целостности данных. Привилегии 11чЯЕКТ и 13РОАТЕ могут ограничиваться отдельными столбцами таблицы и в этом случае пользователь может модифицировать значения только указанных столбцов.
!75 Привилегия КЕРЕКЕХСЕВ также может распространяться только на отдельные столбцы таблицы, что позволит использовать их имена в формулировках требований защиты целостности данных (например, в конструкциях СНЕСК РОКЕ1ОМ КЕУ1, входящих в определения других таблиц, тогда как применение для подобных целей остальных столбцов будет запрещено. Когда пользователь с помощью оператора СКЕАТЕ ТАВ1.Е создает новую таблицу, он автоматически становится ее владельцем и получает по отношению к ней полный набор привилегий.
Остапьные же пользователи сначала не имеют никаких привилегий в отношении вновь созданной таблицы и для обеспечения им доступа к этой таблице используется оператор ОКАХТ. Если пользователь создает представление с помощью оператора СКЕАТЕ Ч!Е%, он автоматически становится владельцем этого представления, однако совсем необязательно, что получает по отношению к нему полный набор прав. При создании представления пользователю достаточно иметь привилегию ЯЕ[.ЕСТ для всех входящих в данное представление таблиц и привилегию КЕРЕКЕХСЕЯ для всех столбцов, упоминаемых в определении этого представления.
Привилегии 1МВЕКТ, 0РЕ)АТЕ, Е)Е[.ЕТЕ в отношении созданного представления пользователь получит только в том случае, если он имеет соответствующие привилегии в отношении всех используемых в представлении таблиц. Предоставление привилегий другим пользователям. Оператор ОКАХТ используется лля предоставления привилегий определенным пользователям в отношении поименованных объектов базы данных с разрешения ее владельца. Оператор ОКА1 )Т имеет следующий формат: СВАМТ (Рпъп11едеььзс ( АЬЬ РВ1Ч1ЬЕСЕБ) Ох ОЬ~ессиаве ТО (АипоЬп1паггоп1п]ььае ] Р()ВЬ1С) [И1ТН СВАИТ ОРТ10И] Параметр Рпшйеяе].]вг представляет собой список, состоящий из одной или более привилегий, разделенных запятыми: 1ИБЕВТ [(Со1свпнаве [, ...])] ()РПАТЕ [(Со1свпнаве (, ...])] ВЕРЕВЕИСЕБ [(Со1пвпиаве [, ...])] ()БАБЕ [(Со1шппнаве [, ...])1 Кроме того, для упрощения в операторе ОКАХТ можно указать ключевое слово А[ Ь РК1Ч1ЕЕОЕВ, что позволит предоставить указанному пользователю все шесть существующих привилегий без необходимости их перечисления.
176 В этом операторе можно также указать ключевое слово Р1)В1.1С, означающее предоставление доступа указанного типа не только всем существующим пользователям, но и всем тем пользователям„которые будут определены в базе данных впоследствии. Параметр ОЬ3ес1Хаще может представлять собой имя таблицы базы данных, представления, домена, набора символов, проверки или транзакции. Конструкция %1ТН ОВАЬ)Т ОРТ10Х позволяет всем пользователям, указанным в списке параметра АцгоЬг)ха!)оп1д) 1з1, передавать другим пользователям все предоставленные им в отнощении указанного объекта привилегии. Если эти пользователи, в свою очередь, передадут собственные полномочия другим пользователям с указанием конструкции %1ТН ОВАХТ ОРТ1ОХ, то последние также получат право передавать свои полномочия.
Если же эта конструкция не будет указана, получатель привилегии не сможет передавать свои права другим пользователям. Таким образом, владелец объекта может четко контролировать, кто получил право доступа к принадлежащему ему объекту и какие полномочия предоставлены этому лицу. Приведем пример предоставления пользователю с идентификатором Аг!тшиггагог всех привилегий доступа к таблице МК (Марщругная карта): СКАУТ АЬЬ РН1Ч1ЬЕОЕЯ ОН МК ТО Абт1пдзггагог Х1ТН ОНАИТ ОРТ1ОИ; В результате выполнения этого примера пользователь с идентификатором Аа!т!и!зггагог получает право выбирать данные из таблицы МК, а также вставлять, обновлять или удалять из нее строки.
Кроме того, пользователь АНт!аиггагог может ссылаться на таблицу МК и все ее столбцы в любой таблице, создаваемой им впоследствии. Так как в данном примере присутствует конструкция %1ТН ОВАХТ ОРТ10Х, пользователь Аг7т!ниггагог сможет передавать полученные им привилегии по своему усмотрению другим пользователям. Приведем пример предоставления пользователям с идентификаторами Техно!оК и Конзггайог только привилегий ВЕ1.ЕСТ и 1)РОАТЕ на столбец А!а!тОрег таблицы МК !Маршрутная карта): ОНАТ ЯЕЬЕСТ, ОРОАТЕ (Иадт Орех) ОН МК ТО Техао1од, Колзсго!геог Поскольку в последнем примере отсутствует конструкция %1ТН ОКАХТ ОРТ10Х, указанные пользователи не смогут передать полученные привилегии другим пользователям.
177 Для отмены предоставленных пользователям привилегий используют оператор КЕЧОКЕ, который имеет следующий формат: КЕЧОКЕ [ОКАИТ ОРТТОЫ РОК] [Рг1ч11едеь1зС [ аъ1, РК1Ч1ЬЕОЕЯ) ОН О]з]есгиапе ГКОМ [асго]тгьаагьос16Ыз'с [ РПВЬ1С] [КЕЯТК1СТ САВСАРЕ] Здесь ключевые слова А[.1. РК1ЧН.ЕОЕЯ означают, что для указанного пользователя отменяются все привилегии, предоставленные ему ранее тем пользователем, который ввел данный оператор. Необязательная конструкция ОКАХТ ОРТЮН РОК позволяет для всех привилегий, переданных в исходном операторе ОКАНТ конструкции %1ТН ОКАТЯТ ОРТЮХ, отменять возможность их передачи.