Дополнительным доводом в пользу употребления роли (неважно, защищенной паролем, или нет) является возможность с ее помощью динамически менять объем полномочий пользователя в процессе его работы. Простой пример доказывает это. Продолжим работу под именем ADAM:
SQL> SELECT * FROM session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION
SQL> HOST sqlplus / AS SYSDBA
....................................................... ....................................................... Connected to: Oracle Database 10g Enterprise Edition................ With the Partitioning, Oracle Label Security,.........
SQL> GRANT CREATE TABLE TO tablecreator;
Grant succeeded.
SQL> EXIT Disconnected from Oracle Database 10g................ With the Partitioning, Oracle Label Security,........
SQL> /
PRIVILEGE ---------------------------------------- CREATE SESSION CREATE TABLE
TABLE появилась в рамках прежнего, продолжающего свою работу, сеанса пользователя ADAM.
Еще одно свойство, повышающее потребительское качество роли, заключается в том, что Oracle позволяет ввести для ролей внешнее управление, когда включаться или выключаться они смогут операционной системой или службой имен. Для этого роли должны создаваться с помощью соответственно двух специальных указаний:
В первом случае парольная защита роли перекладывается на ОС, а во втором на службу имен. Наполнение же роли полномочиями (правами совершать действия в БД) в любом случае регулируется внутри БД.