
- •Аутентификация операционной системы
- •Аутентификация глобального имени пользователя
- •Работа с привилегиями
- •Объектные привилегии
- •Предоставление и отмена привилегий
- •Работа с привилегиями при помощи ролей
- •Предварительно установленные роли базы данных
- •Роли, определяемые пользователями
- •Разрешение и запрещение ролей
- •Список литературы
Объектные привилегии
Объектная привилегия (object privilege) предоставляет пользователю возможность выполнять операцию определенного вида с конкретным объектом базы данных, например с таблицей, с представлением или с хранимой процедурой. Например:
· С помощью объектной привилегии SELECT (выбрать) для представления CUST пользователь может обращаться с запросами к этому представлению и считывать необходимую информацию.
· С помощью объектной привилегии INSERT (ввести) для таблицы CUSTOMERS пользователь может вводить в нее новые строки.
· С помощью привилегии EXECUTE (выполнить) для объектного типа PART_TYPE пользователь может применять этот тип при создании других объектов базы данных и выполнять методы этого типа.
В этих примерах приведены лишь, немногие из объектных привилегий для таблиц, представлений, последовательностей, процедур, функций, модулей, объектных типов и каталогов файлов сервера. В зависимости от способа разработки приложения, пользователям могут потребоваться различные объектные привилегии для базовых объектов, с которыми работает данное приложение. Например, для работы с обычным приложением по вводу заказов пользователям могут быть необходимы привилегии SELECT, INSERT, UPDATE и DELETE для таблиц CUSTOMERS, ORDERS и ITEMS, а также привилегии SELECT и UPDATE для таблицы PARTS. Каждая объектная привилегия разрешает выполнение только конкретной операции, поэтому с помощью привилегий можно установить полный контроль за доступом к базам данных.
Предоставление и отмена привилегий
Дать пользователю системную или объектную привилегию можно с помощью SQL-команды GRANT (предоставить), а лишить привилегий можно с помощью SQL-команды REVOKE (отменить). Предоставлять и отменять привилегии пользователей могут только конкретные лица. Управляя какой-либо системой и привилегиями пользователей необходимо помнить, что:
· Предоставить системную привилегию может лишь пользователь, имеющий системную привилегию с правами администратора на предоставление привилегий другим пользователям.
· Предоставить привилегию на объект базы данных может лишь пользователь, владеющий этим объектом или имеющий объектную привилегию с правами администратора на предоставление привилегий другим пользователям.
Примечание. Чтобы быстро предоставить какую-либо системную или объектную привилегию всем пользователям, предоставьте ее PUBLIC - специальной группе в базе данных Oracle.
Работа с привилегиями при помощи ролей
Вполне возможно, что для использования обычного приложения баз данных придется назначить множество системных и объектных привилегий. Когда с приложением работает множество пользователей, управление привилегиями может быстро превратиться в достаточно трудную задачу, так как нужно будет предоставлять привилегии каждому пользователю. Чтобы упростить процесс обеспечения безопасности системы, можно воспользоваться ролями. Роль (role) — это совокупность системных и объектных привилегии, предоставляемых пользователям и другим ролям. Например, при создании нового приложения можно создать новую роль с привилегиями, необходимыми для выполнения данной программы. После того как пользователю приложения предоставляется эта роль, он может запускать приложение, соединяться с базой данных и выполнять свою работу. Если привилегии, необходимые для выполнения приложения, изменяются, то нужно только быстро модифицировать набор привилегий, заданных в роли. Все пользователи, которым предоставлена эта роль, автоматически отслеживают происшедшие изменения и продолжают работу с приложением, имея на то необходимые привилегии.