пятница, 11 января 2019 г.

SET ROLE Oracle

SET ROLE Oracle

Роль (ROLE) – это именованный элемент базы данных, который объединяет несколько привилегий. Если имеется несколько привилегий для одной роли, то между привилегиями и ролями создается отношение «многие – к-одному». Роль – это уникальный элемент базы данных, не принадлежащий пользователю. Ее можно создать с помощью команды CREATE ROLE, причем наименование роли не может совпадать с именем пользователя. При наличии привилегии CREATE ROLE пользователи также могут задавать привилегии. После создания роль становится частью заданного по умолчанию набора ролей.
Какая роль назначена тому или иному пользователю, СУБД может определить в процессе его опознания по паролю. Для присвоения пользователю роли используется команда SET ROLE.

SET ROLE Пример 1

Пользователь USER1 создает роль my_role без защиты паролей, передает ей набор привилегий. Затем использование роли данным пользователем разрешается (активизируется) или запрещается с помощью команды SET ROLE.

ROLE Oracle

CREATE ROLE my_role NOT IDENTIFIED;
GRANT SELECTINSERT ON Student TO my_role;
GRANT UPDATE (Fam,Ball) ON Student TO my_role;
SET ROLE my_role IDENTIFIED BY st;
После этого пользователь USER1 может передать право на использование роли my_role другому пользователю с помощью команды GRANT.