- •Аутентификация операционной системы
- •Аутентификация глобального имени пользователя
- •Работа с привилегиями
- •Объектные привилегии
- •Предоставление и отмена привилегий
- •Работа с привилегиями при помощи ролей
- •Предварительно установленные роли базы данных
- •Роли, определяемые пользователями
- •Разрешение и запрещение ролей
- •Список литературы
Работа с привилегиями
Пользователи системы баз данных Oracle не могут соединяться с сервером баз данных или выполнять какие-либо существенные действия, если они не имеют привилегий (privileges) на проведение определенных операций с базами данных. Например, пользователь базы данных не может:
· Соединяться с базой данных Oracle, не имея системной привилегии CREATE SESSION (установить сеанс)
· Создавать таблицы в соответствующей схеме, не имея системной привилегии CREATE TABLE (создать таблицу)
· Удалять строки из какой-либо таблицы другой схемы, не имея объектной привилегии DELETE (удалить) для этой таблицы
В этом коротком списке приведено лишь несколько из различных привилегий, которые применяются для управления выполнением операций и данными в базах данных Oracle. О разных видах привилегий и о том, как предоставлять или отменять их для пользователей, более подробно рассказано в последующих разделах.
Типы привилегий
Внимательно посмотрев на приведенный выше список, можно заметить, что существуют два различных типа привилегий, управляющих доступом к базам данных Oracle: системные привилегии и объектные привилегии.
Системные привилегии
Системная привилегия (system privilege) - это мощная привилегия, которая предоставляет пользователю возможность выполнять системную операцию определенного вида. Для примера ниже приведены некоторые из почти ста системных привилегий, существующих в Oracle8:
· С помощью системной привилегии CREATE SESSION (установить сеанс) пользователь может соединяться с сервером баз данных и устанавливать сеанс связи с базой данных.
· С помощью системной привилегии CREATE TABLE (создать таблицу) пользователь может создавать таблицы в своей собственной схеме.
· С помощью системной привилегии CREATE ANY TABLE (создать любую таблицу) пользователь может создавать таблицы в любой схеме базы данных.
· С помощью системной привилегии CREATE ANY TYPE (создать любой тип) пользователь может создавать типы и тела соответствующих типов в любой схеме базы данных.
· С помощью системной привилегии SELECT ANY TABLE (выбрать любую таблицу) пользователь может обращаться с запросами к любой таблице базы данных.
· С помощью системной привилегии EXECUTE ANY PROCEDURE (выполнить любую процедуру) пользователь может выполнять любую хранимую процедуру, хранимую функцию или модульный компонент базы данных.
· С помощью системной привилегии EXECUTE ANY TYPE (выполнить любой тип) пользователь может ссылаться на методы любого типа базы данных, а также выполнять их.
Системные привилегии могут влиять на безопасность всей системы баз данных, поэтому внимательно подходите к вопросу предоставления системных привилегий. В частности, учтите, что:
· Администратор базы данных является единственным пользователем, который должен иметь мощную системную привилегию ALTER DATABASE (изменить базу данных), позволяющую изменять физическую структуру и доступность системы баз данных.
· Разработчикам, как правило, необходимо несколько системных привилегий для построения схем баз данных, обеспечивающих работу приложений клиентов. В числе этих системных привилегий CREATE TABLE (создать таблицу), CREATE VIEW (создать представление) и CREATE TYPE (создать тип).
· Каждый пользователь системы обычно имеет системную привилегию CREATE SESSION (установить сеанс), которая разрешает пользователю соединяться с сервером баз данных.
На первый взгляд может показаться, что огромным числом системных привилегий управлять крайне трудно. Однако каждая системная привилегия предоставляет право на выполнение только конкретной операции с базой данных, поэтому достаточно просто назначить каждому пользователю привилегии, необходимые ему для выполнения своих функций, - не больше и не меньше.
