TL; DR: это работает, просто переподключите пользователя hr
.
документация говорит
"Если вы даете роли для пользователя, то база данных делает ее доступной для пользователя. Пользователь может немедленно включить роль и использовать привилегии в домене привилегий роли. "
Таким образом, ваш Пользователь hr
должен активировать роль, прежде чем сможет ее использовать:
insert into a.testtable values(1);
ORA-00942: table or view does not exist
SELECT * FROM session_roles;
no rows selected
SET ROLE testrole;
Role set.
SELECT * FROM session_roles;
TESTROLE
insert into a.testtable values(1);
1 row created.
Роли обычно автоматически включаются при входе в систему, поэтому вы должны делать это, только если у hr открыт сеанс, пока он получает роль. Стандартная процедура заключается в отключении / повторном подключении пользователя в случае возникновения проблем с новыми ролями.