powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выборка из представлений user_ из другой схемы.
4 сообщений из 4, страница 1 из 1
Выборка из представлений user_ из другой схемы.
    #39660390
spywares
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновляли БД с 12.1 на 12.2 и столкнулись с интересной штуковиной.

view - представление в котором источником данных выступает представление user_scheduler_job_run_details
user1 - владелец view
role - роль которой дано право выборки из view
user2 - тот кому выдана role

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create or replace view v_job_log as
select
  a.job_name,
  a.status,
  a.actual_start_date,
  a.run_duration,
  a.additional_info
from user_scheduler_job_run_details a



Oracle 12.1.
Код: plsql
1.
2.
3.
4.
connect user2;
set role ROLE;
alter session set current_schema=USER1
select * from v_job_log;


В выборке данные присутствуют

Oracle 12.2.
То же самое.
В выборке данных нет.
----------------------------

Как вижу я, оно и не должно работать, т.к... . Но работает на 12.1.
Подскажите пожалуйста, то и где мы упускаем?
...
Рейтинг: 0 / 0
Выборка из представлений user_ из другой схемы.
    #39660422
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
View, role тут ни при чем. Дело в user_scheduler_job_run_details:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
SQL> select banner from v$version
  2  /

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
CORE    12.1.0.2.0      Production
TNS for 64-bit Windows: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production

SQL> select count(*) from user_scheduler_job_run_details
  2  /

  COUNT(*)
----------
         0

SQL> alter session set current_schema=sys
  2  /

Session altered.

SQL> select count(*) from user_scheduler_job_run_details
  2  /

  COUNT(*)
----------
      1199

SQL> 



Если ты посмотришь определение user_scheduler_job_run_details в 12.1 то заметишь что в нем, по сравнению с 11.2 с какого-то перепугу изменини:

Код: plsql
1.
AND e.owner = SYS_CONTEXT('USERENV','CURRENT_USER'))


на:

Код: plsql
1.
AND e.owner = SYS_CONTEXT('USERENV','CURRENT_SCHEMA'))


и получили дыру безопасности. B 12.2 врнули на место.

SY.
...
Рейтинг: 0 / 0
Выборка из представлений user_ из другой схемы.
    #39660424
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выборка из представлений user_ из другой схемы.
    #39660615
spywares
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY , Elic Благодарю.

P.S. Смотрел в код этой вьюхи, но видно из за большого кол-ва открытых окон, дважды посмотрел в код 12.2. Поэтому и был уверен, что работать оно не должно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выборка из представлений user_ из другой схемы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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