Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / LCD / Управление доступом к Базам Данных.doc
Скачиваний:
70
Добавлен:
16.04.2013
Размер:
93.18 Кб
Скачать

Предоставление и отмена привилегий

Дать пользователю системную или объектную привилегию можно с помощью SQL-команды GRANT(предоставить), а лишить привилегий можно с помощью SQL-командыREVOKE(отменить). Предоставлять и отменять привилегии пользователей могут только конкретные лица. Управляя какой-либо системой и привилегиями пользователей необходимо помнить, что:

  • Предоставить системную привилегию может лишь пользователь, имеющий системную привилегию с правами администратора на предоставление привилегий другим пользователям.

  • Предоставить привилегию на объект базы данных может лишь пользователь, владеющий этим объектом или имеющий объектную привилегию с правами администратора на предоставление привилегий другим пользователям.

Примечание. Чтобы быстро предоставить какую-либо системную или объектную привилегию всем пользователям, предоставьте ееPUBLIC- специальной группе в базе данныхOracle.

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

Вполне возможно, что для использования обычного приложения баз данных придется назначить множество системных и объектных привилегий. Когда с приложением работает множество пользователей, управление привилегиями может быстро превратиться в достаточно трудную задачу, так как нужно будет предоставлять привилегии каждому пользователю. Чтобы упростить процесс обеспечения безопасности системы, можно воспользоваться ролями. Роль (role) — это совокупность системных и объектных привилегии, предоставляемых пользователям и другим ролям. Например, при создании нового приложения можно создать новую роль с привилегиями, необходимыми для выполнения данной программы. После того как пользователю приложения предоставляется эта роль, он может запускать приложение, соединяться с базой данных и выполнять свою работу. Если привилегии, необходимые для выполнения приложения, изменяются, то нужно только быстро модифицировать набор привилегий, заданных в роли. Все пользователи, которым предоставлена эта роль, автоматически отслеживают происшедшие изменения и продолжают работу с приложением, имея на то необходимые привилегии.

Предварительно установленные роли базы данных

Oracleопределяет несколько предварительно установленных ролей, которые можно применять для предоставления привилегий пользовате­лям баз данных:

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

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

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

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

DELETE_CATALOG_ROLE Позволяет удалять записи из журнала аудита базы данных (подробная информация об аудите приведена в разделе "Аудит баз данных" этой главы).

EXECUTE_CATALOG_ROLE Позволяет выполнять модули утилитыDBMS.

EXP_FULL_DATABASE, IMP_FULL_DATABASE Позволяет экспортировать и импортировать информацию, содержащуюся в базе данных, при помощи утилит экспорта и импорта.

Хотя в Oracleимеются заранее созданные роли, упрощающие процесс предоставления привилегии пользователям баз данных, приложения, работающие с этими ролями, не всегда будут функционировать корректно. Поэтому можно изменять наборы привилегии таких ролей или даже удалять эти роли.