Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен (СУБД).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
183.3 Кб
Скачать

22. Привилегии. Системные привилегии.

Как уже указывалось привилегии – это права пользователя на проведение тех или иных действий над определенным объектом базы данных. В SQL предоставление тех или иных прав над различными объектами баз данных возможно посредством инструкции GRANT.

Системная привилегия – это мощная привилегия, которая предоставляет пользователю возможность выполнять системную операцию определенного вида.

Пример:

• CREATE SESSION (установить сеанс) – позволяет пользователю соединяться с сервером баз данных и устанавливать с ней сеанс связи;

• CREATE TABLE (создать таблицу) – позволяет пользователю создавать таблицы в своей собственной схеме;

Работа с привилегиями при помощи ролей

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

Роль – это совокупность системных привилегий, предоставляемых пользователям и другим ролям

CONNECT – основная роль пользователей, которая позволяет соединяться с базой данных, а затем создавать таблицы, представления, синонимы и последовательности в соответствующей схеме.

RESOURCE – роль, предназначенная для разработчиков приложений; помимо таблиц, представлений и т. д. позволяет создавать процедуры, функции, триггеры и объектные типы в соответствующей схеме.

Для базы данных ORACLE можно создавать любое требуемое количество ролей.

23. Привилегии доступа к объектам схемы. Правила предоставления привилегий

Существуют привилегии двух типов:

-системные привилегии (system privileges), контролирующие общий доступ к базе данных;

-объектные привилегии (object privileges), контролирующие доступ к конкретным объектам базы данных.

Для управления привилегиями определены следующие правила:

-объект принадлежит пользователю, его создавшему (если синтаксисом не указано создание объекта -другого пользователя, конечно, при соответствующих полномочиях);

-владелец объекта, согласно стандарту, может изменять привилегии своего объекта (в коммерческих СУБД, таких как Oracle, уровни полномочий представляют собой более сложную иерархию);

-объектная привилегия всегда соотносится с конкретным объектом, а системная - с объектами вообще.

Язык SQL поддерживает следующие привилегии:

ALTER - позволяет выполнять оператор ALTER TABLE;

SELECT - позволяет выполнять оператор запроса;

INSERT - позволяет выполнять добавление строк в таблицу;

UPDATE - позволяет изменять значения во всей таблице или только в некоторых столбцах;

DELETE - позволяет удалять строки из таблицы;

REFERENCES - позволяет устанавливать внешний ключ с использованием в качестве родительского ключа любых столбцов таблицы или только некоторых из них;

INDEX - позволяет создавать индексы (не входит в стандарт SQL-92);

DROP - позволяет удалять таблицу из схемы базы данных.

24. Работа с привилегиями при помощи ролей. Системные роли, определение, изменение, удаление ролей

Вполне возможно, что для использования обычного приложения баз данных придется назначать множество системных привилегий. Когда с приложением работает множество пользователей, управление привилегиями может быстро превратиться в достаточно трудную задачу, так как нужно будет предоставлять привилегии каждому пользователю. Чтобы упростить процесс обеспечения безопасности системы некоторые СУБД в частности ORACLE позволяют воспользоваться ролями. Роль – это совокупность системных привилегий, предоставляемых пользователям и другим ролям. Надо отметить, что СУБД может предоставлять пользователям некоторое количество предварительно установленных ролей.

CONNECT – основная роль пользователей, которая позволяет соединяться с базой данных, а затем создавать таблицы, представления, синонимы и последовательности в соответствующей схеме.

RESOURCE – роль, предназначенная для разработчиков приложений; помимо таблиц, представлений и т. д. позволяет создавать процедуры, функции, триггеры и объектные типы в соответствующей схеме.

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

SELECT_CATALOG_ROLE – роль, позволяющая обращаться с запросами к представлениям словаря данных, созданным администратором.

DELETE_CATALOG_ROLE – роль, позволяющая удалять записи из журнала аудита базы данных.

Роли, определяемые пользователями

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

Разрешение и запрещение ролей

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

Возможность динамически управлять набором привилегий позволяет приложениям обеспечивать постоянную корректность наборов привилегий пользователей во время работы с данным приложением. Например, когда пользователь запускает приложение по вводу заказов, с помощью SQL-команды SET ROLE это приложение разрешает ему применять для работы роль ORDER_ENTRY (см. пример). Когда пользователь завершает свою работу, приложение запрещает для него эту роль, и он не может применять привилегии приложения по вводу заказов во время работы с другим приложением.