powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / user_role_privs vs dbms_session.is_role_enabled
11 сообщений из 11, страница 1 из 1
user_role_privs vs dbms_session.is_role_enabled
    #39314097
В одной сессии делаю запросы
Код: plsql
1.
2.
select * from user_role_privs urp
where urp.GRANTED_ROLE = 'MY_COOL_ROLE'


В результате получаю
Код: plaintext
1.
2.
3.
USERNAME                       GRANTED_ROLE                   ADMIN_OPTION DEFAULT_ROLE OS_GRANTED
------------------------------ ------------------------------ ------------ ------------ ----------
A                              MY_COOL_ROLE                  NO           YES          NO

Потом выполняю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
begin
  if dbms_session.is_role_enabled('MY_COOL_ROLE') then
    dbms_output.put_line('ЕСТЬ ТАКАЯ РОЛЬ');
  else
    dbms_output.put_line('НЕТ ТАКОЙ РОЛИ');   
  end if;
end;



И получаю что нету такой роли
Юзер не имеет доступ к табличкам которые грантованы данной роли

Как такое может быть?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE	11.2.0.2.0	Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39314103
Хочу добавить что такое произошло у всех юзеров, у которых была эта роль, после того, как роли грантанули еще пару объектов.
При этом у юзеров есть и другие роли, которые тоже меняли и которые ведут себя нормально
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39314122
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы роль работала, она должна быть не просто грантована, но и включена. Включенные в данный момент в сессии роли сама сессия может увидеть в SESSION_ROLES.
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39314183
Если вы по SET_ROLE
То в сессии не было таких вызовов
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39314196
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Может, в логон триггере какие-то манипуляции с ролями?
2) Версия оракла сырая, наверняка еще и непатченая. Вполне возможно, баг.
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39315607
В session_roles действительно не было нужной роли
Код: plsql
1.
alter user ИМЯ_ПОЛЬЗОВАТЕЛЯ default role ALL;


помогло

Не подскажете, если ли способ выяснить, какие роли отключены для пользователя (ну кроме как логинится под ним и смотреть в session_roles)
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39318788
Проблема начала повторяться и на патченой 11G SE 11.2.0.4.0
Каким то магическим образом у юзера пропадает роль.
Ни триггеров ни какого то другого кода не обнаружено.
Проблема замечена после перекомпиляции некоторых доступных через роль вьюх (вьюхи юзают контекст сессии, не знаю, важно ли это) во время активной работы под проблемным пользователем
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39318828
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколько вообще ролей у проблемного юзверя?
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39319666
всего 7 ролей
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39319671
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как (поп первым постам) не твой случай, но все же распространенные грабли:
Некоторые думают, что назначив роль юзеру, а потом сказав alter user ... default role <новая_роль> они добавляют роль к списку дефолтовых (включающихся при логине)
Но они при этом заменяют весь список (или ALL) только на эту роль
...
Рейтинг: 0 / 0
user_role_privs vs dbms_session.is_role_enabled
    #39319675
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и еще с какой-то версии роли, защищенные паролем нельзя установить в качестве дефолтовой
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / user_role_privs vs dbms_session.is_role_enabled
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]