Работа с привилегиями при помощи ролей


Предоставление и отмена привилегий

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

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

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

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

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

 

Дать пользователю системную или объектную привилегию можно с помощью SQL-команды GRANT (предоставить), а лишить привилегии можно с помощью SQL-команды REVOKE (отменить). Предостав­лять и отменять привилегии пользователей могут только конкретные лица. Управляя какой-либо систе­мой и привилегиями пользователей необходимо помнить, что:

• Предоставить системную привилегию может лишь пользователь, имеющий системную привилегию с правами администратора на предоставление привилегий другим пользователям.

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

Вполне возможно, что для использования обычного приложения баз данных придется назначить множество системных и объектных привилегий. Когда с приложением работает множество пользовате­лей, управление привилегиями может быстро превратиться в достаточно трудную задачу, так как нужно будет предоставлять прииилсгии каждому пользователю. Чтобы упростить процесс обеспечения безопас­ности системы, можно воспользоваться ролями. Роль (role) — это совокупность системных и объектных привилегий, предоставляемых пользователям и другим ролям. Например, при создании нового приложения можно создать новую роль с привилегиями, необходимыми для выполнения данной программы. После того как пользователю приложения предоставляется эта роль, он может, запускать приложение, соединяться с базой данных и выполнять свою работу. Если привилегии, необходимые для выполнения приложения, изменяются, то нужно только быстро модифицировать набор привилегий, заданных в роли. Все пользователи, которым предоставлена эта роль, автоматически отслеживают происшедшие изменения и продолжают работу с приложением, имея на то необходимые привилегии.