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