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

Типы привилегий

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

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

Системная привилегия (system privilege) - это мощная привилегия, которая предоставляет пользователю возможность выполнять системную операцию определенного вида. Для примера ниже приведены некоторые из почти ста системных привилегий, существующих вOracle8:

  • С помощью системной привилегии CREATESESSION(установить сеанс) пользователь может соединяться с сервером баз данных и устанавливать сеанс связи с базой данных.

  • С помощью системной привилегии CREATETABLE(создать таблицу) пользователь может создавать таблицы в своей собственной схеме.

  • С помощью системной привилегии CREATEANYTABLE(создать любую таблицу) пользователь может создавать таблицы в любой схеме базы данных.

  • С помощью системной привилегии CREATEANYTYPE(создать любой тип) пользователь может создавать типы и тела соответствующих типов в любой схеме базы данных.

  • С помощью системной привилегии SELECTANYTABLE(выбрать любую таблицу) пользователь может обращаться с запросами к любой таблице базы данных.

  • С помощью системной привилегии EXECUTEANYPROCEDURE(выполнить любую процедуру) пользователь может выполнять любую хранимую процедуру, хранимую функцию или модульный компонент базы данных.

  • С помощью системной привилегии EXECUTEANYTYPE(выполнить любой тип) пользователь может ссылаться на методы любого типа базы данных, а также выполнять их.

Системные привилегии могут влиять на безопасность всей системы баз данных, поэтому внимательно подходите к вопросу предоставления системных привилегий. В частности, учтите, что:

  • Администратор базы данных является единственным пользователем, который должен иметь мощную системную привилегию ALTERDATABASE(изменить базу данных), позволяющую изменять физическую структуру и доступность системы баз данных.

  • Разработчикам, как правило, необходимо несколько системных привилегий для построения схем баз данных, обеспечивающих работу приложений клиентов. В числе этих системных привилегий CREATETABLE(создать таблицу),CREATEVIEW(создать представление) иCREATETYPE(создать тип).

  • Каждый пользователь системы обычно имеет системную привилегию CREATESESSION(установить сеанс), которая разрешает пользователю соединяться с сервером баз данных.

На первый взгляд может показаться, что огромным числом системных привилегий управлять крайне трудно. Однако каждая системная привиле­гия предоставляет право на выполнение только конкретной операции с базой данных, поэтому достаточно просто назначить каждому пользователю привилегии, необходимые ему для выполнения своих функций, - не больше и не меньше.

Объектные привилегии

Объектная привилегия (object privilege) предоставляет пользователю возможность выполнять операцию определенного вида с конкретным объектом базы данных, например с таблицей, с представлением или с хранимой процедурой. Например:

  • С помощью объектной привилегии SELECT(выбрать) для представленияCUSTпользователь может обращаться с запросами к этому представлению и считывать необходимую информацию.

  • С помощью объектной привилегии INSERT(ввести) для таблицыCUSTOMERSпользователь может вводить в нее новые строки.

  • С помощью привилегии EXECUTE(выполнить) для объектного типаPART_TYPEпользователь может применять этот тип при создании других объектов базы данных и выполнять методы этого типа.

В этих примерах приведены лишь, немногие из объектных привилегий для таблиц, представлений, последовательностей, процедур, функций, модулей, объектных типов и каталогов файлов сервера. В зависимости от способа разработки приложения, пользователям могут потребоваться различные объектные привилегии для базовых объектов, с которыми работает данное приложение. Например, для работы с обычным приложением повводу заказов пользователям могут быть необходимы привилегииSELECT,INSERT,UPDATEиDELETEдля таблицCUSTOMERS,ORDERSиITEMS, а также привилегииSELECTиUPDATEдля таблицыPARTS. Каждая объектная привилегия разрешает выполнение только конкретной операции, поэтому с помощью привилегий можно установить полный контроль за доступом к базам данных.