Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_BD.doc
Скачиваний:
57
Добавлен:
26.09.2019
Размер:
254.46 Кб
Скачать

18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.

Администрирование баз данных является неотъемлемой частью работы с базами данных любого уровня: от персональных однопользовательских до больших межорганизационных – хотя задачи, которые в этой связи предстоит решать, различны по уровню сложности. Например, пользователи простейших баз данных самостоятельно выполняют операции резервного копирования (зачастую даже не замечая этого), тем самым реализуя часть административных функций. В более сложных, а особенно в многопользовательских приложениях, администрирование становится как более важной, так и более сложной задачей. Поэтому данная задача выделяется формально, и обязанности АБД исполняет один человек либо группа лиц. В общую компетенцию АБД входит упрощение разработки и использования базы данных. Обычно это означает поддержание баланса между противоречащими друг другу установками: на защиту базы данных и на максимизацию ее доступности. Перечислим некоторые из функциональных обязанностей АБД: обеспечение безопасности базы данных (включая стратегии копирования и восстановления данных); распределение прав и обязанностей по обработке данных (т.н. разграничение доступа); управление структурой базы данных; управление параллельной обработкой данных;управление СУБД.Следует сказать, что некоторые этих задач решаются применением специальных программных средств (как входящих в состав СУБД, так и разработанных специально для конкретных приложений) а для решения других проблем требуется привлечение административных ресурсов (например, физическое ограничение доступа к компьютерам с данными либо применение специальных процедур актуализации паролей).

Разграничение доступа

Для обеспечения защиты информации во многих современных СУБД, в том числе и в Oracle, используется система избирательного управления доступом. Эта система базируется на следующих понятиях: пользователь базы данных; привилегия; роль.

Пользователь базы данных – это тот объект, который может иметь доступ к базе данных, используя механизм СУБД. В качестве пользователя может выступать как человек, так и прикладная программа. При этом нормальной является ситуация, когда один пользователь одновременно обращается к СУБД несколько раз (например, пассажиры получают информацию о свободных местах с нескольких справочных терминалов).

Для получения доступа к базе данных пользователь должен пройти процедуру аутентификации. В простейшем случае эта процедура сводится к предъявлению правильного пароля. При этом задача распознавания пользователей может решаться как на уровне операционной системы, так и на уровне средств СУБД.Создание нового пользователя осуществляется администратором либо другими уполномоченными пользователями выполнением команды CREATE USER имяпользователя IDENTIFIED BY пароль. Характеристики пользователя базы данных (точнее, предельные значения для этих характеристик) хранятся в профиле, который может быть одним и тем же для различных пользователей. По умолчанию новый пользователь обладает характеристиками, описанными в профиле DEFAULT, однако мы можем создать новый профиль (до создания пользователя), а при создании пользователя указать один из существующих к тому времени профилей. Профиль может быть уничтожен командой DROP PROFILE, однако это не влечет уничтожения пользователей, для которых был применен этот профиль – для них назначается профиль DEFAULT

Соответственно, команда ALTER USER, формат которой здесь не рассматривается, изменяет характеристики отдельного пользователя, а команда DROP USER – уничтожает пользователя (и, возможно, все объекты базы данных, связанные с ним).

Привилегии Каждый пользователь СУБД обладает набором привилегий для работы с базой данных. Под привилегией понимается разрешение выполнять ту или иную операцию с базой данных. В соответствии с этим принципом, в частности, только что созданный пользователь не имеет никаких прав на работу с базой данных, он не может даже выполнить команду CONNECT.Существует несколько классификаций для привилегий. По одной из них, множество привилегий разделяется на базовые (определенные в стандарте ANSI SQL) и дополнительные (специфичные для каждой конкретной СУБД).Согласно классификации, принятой в Oracle, различаются: системные привилегии (которые дают пользователю право на выполнение какой-либо операции в масштабе базы данных); привилегии доступа к объектам (разрешающие выполнение определенной операции над конкретным объектом базы данных, например, выборку данных из некоторой таблицы).

Перечислим некоторые из привилегий системного уровня.

GRANT ANY PRIVILEGE - разрешает пользователю предоставлять другим пользователям системные привилегии. GRANT ANY OBJECT PRIVILEGE-то же для привилегий доступа к объектам. CREATE SESSION-разрешает пользователю создавать сеанс работы, в т.ч. и выполнять команду CONNECT. CREATE TABLE-разрешает создание таблиц в собственной схеме. CREATE ANY TABLE-разрешает создание таблиц в любой схеме. INSERT ANY TABLE- разрешает выполнение команды INSERT для любых таблиц Принцип владения: пользователь, создавший какой-то объект в собственной схеме, может выполнять над этим объектом любые операции. Фраза PUBLIC используется для предоставления той или иной привилегии всем пользователям системы, как существующим к моменту выполнения оператора, так и созданным после этого. Заметим, что в системах с серьезными требованиями по защите информации эта конструкция обычно не используется. Аналогичное замечание можно высказать и для фразы ALL PRIVILEGES. Фраза WITH ADMIN OPTION используется для передачи некоторой привилегии с правом наследования. Если привилегия передана с этим параметром, получивший ее пользователь имеет право передавать ее другим пользователям. Привилегии, предоставленные пользователям, могут быть отменены командой REVOKE {списокпривилегий | ALL PRIVILEGES} FROM {списокпользователей | PUBLIC}

Пользователь, выдавший команду GRANT для предоставления привилегий уровня объекта, должен:

быть владельцем соответствующего объекта; получить ранее эту привилегию с параметром WITH GRANT OPTION; иметь привилегию GRANT ANY PRIVILEGE.

Перечислим некоторые из привилегий доступа к таблице: SELECT, INSERT, UPDATE, DELETE- Разрешает выполнять соответствующие операторы SQL для доступа к данным. ALTER- Разрешает изменять структуру таблицы с помощью оператора ALTER TABLE. REFERENCES- Разрешает создавать ограничения на таблицу. INDEX-Разрешает создавать индексы для таблицы

Роли Большое число пользователей, статус которых требует различных привилегий для доступа к ресурсам базы данных, требует от АБД значительного объема рутиной работы. Для автоматизации работы администратора по разграничению доступа к базе данных Oracle предлагает механизм ролей. Роль представляет собой поименованный набор привилегий. Следует сказать, что роль является объектом всей базы данных, а не какой-то схемы.

Таким образом, мы можем: создать роль (и соответственно изменить или удалить ее); предоставить набор привилегий какой-то роли; предоставить роль пользователю или другой роли; динамически разрешить или запретить использование предоставленной роли.

При изменении привилегий для какой-либо роли этот набор привилегий изменяется для всех пользователей, владеющих этой ролью.При создании базы данных Oracle автоматически создаются роли CONNECT (позволяющая создать сеанс работы и объекты в собственной схеме) и DBA (все системные привилегии с параметром WITH ADMIN OPTION и роли по импорту-экспорту данных).

Для создания роли используется оператор CREATE ROLE, формат которого напоминает формат создания пользователя:CREATE ROLE имяроли IDENTIFIED BY пароль

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]