
- •Управление доступом к базам данных
- •Управление работой пользователей
- •Аутентификация пользователей
- •Аутентификация по паролю
- •Аутентификация операционной системы
- •Аутентификация глобального имени пользователя
- •Табличная область по умолчанию для пользователя.
- •Временная табличная область пользователя
- •Блокированные и разблокированные учетные сведения пользователей
- •Работа с привилегиями
- •Типы привилегий
- •Системные привилегии
- •Объектные привилегии
- •Предоставление и отмена привилегий
- •Работа с привилегиями при помощи ролей
- •Предварительно установленные роли базы данных
- •Роли, определяемые пользователями
- •Разрешение и запрещение ролей
- •Роли по умолчанию
- •Аутентификация ролей
- •Ограничение использования ресурсов
- •Квоты для табличных областей
- •Наборы параметров для ограничения ресурсов
- •Работа с учетными сведениями пользователей
- •Набор параметров для ограничения ресурсов по умолчанию
- •Аудит баз данных
- •Избирательный аудит
- •Записи аудита и журнал аудита
- •Установка опций аудита
Типы привилегий
Внимательно посмотрев на приведенный выше список, можно заметить, что существуют два различных типа привилегий, управляющих доступом к базам данных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. Каждая объектная привилегия разрешает выполнение только конкретной операции, поэтому с помощью привилегий можно установить полный контроль за доступом к базам данных.