Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 remote_authorization_failed  [new]
роман23t
Member

Откуда:
Сообщений: 83
Все привет, может кто знает в чем проблема. По данной ошибке в нете ничего не нашел.

где выполняется запрос - Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
куда обращается линк - Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production


есть динамический запрос по линку к другой БД (excecute immediate), bind переменные используются. Запрос обычно крутится в порядка 10 шедулерах, реализующих определенную бизнес логику (проблемный среди десятков других запросов, т.е. запускается время от времени). Обратил внимание, что он в shared pool (v$sql_shared_cursor) дублируется 20 тыс раз. Причина, почему не подошел предыдущий (поле reason)

<ChildNode><ChildNumber>398</ChildNumber><ID>36</ID><reason>Authorization Check failed(14)</reason><size>0x0</size><details>remote_authorization_failed</details></ChildNode>


Какой то намек на то, что проблема с грантами пользователя линку, но сам запрос выполняется и проблем с правами нет. У шедулера и owner и job_creator совпадает с тем пользователем, под которым запрос нормально выполняется. С запросом были блокировки cursor mutex x, но после перезапуска заданий проблема ушла, появилась тоже внезапно (не было изменений кода или существенных объемов обрабатываемых данных)


Не знаю, поможет ли чем то текст запроса, на всякий случай

  begin        
    v_sql := 'with tab as
                      (
                        select
                          sn.field_1 ,sn.dflevel
                        from table_1'||v_link||' sn
                        connect by nocycle prior sn.dfparent_field_1 =  sn.field_1
                        start with sn.field_1 = (select field_1 from table_2'||v_link||' s
                                                 where s.field_3 = :v_var1
                                                   and :vdate between nvl(s.datebegin,:v_var2) and nvl(s.dateend,:v_var3)
                                                   and rownum = 1)
                      ),tab2 as
                      (
                       select
                          tab.dflevel,sa.localsystemid
                       from tab
                         join table_3 sa on sa.field_3 = to_char(tab.field_1) 
                       )
                      select *
                      from tab2
                      pivot(
                            max(localsystemid)
                            for dflevel
                            in (''1'',''2'',''3'')
                            ) ';
                                
        execute immediate v_sql
        into v_var1, v_var2, v_var3 using v_par1, sysdate, sysdate, sysdate;           
  end;
30 июн 20, 17:05    [22159845]     Ответить | Цитировать Сообщить модератору
 Re: remote_authorization_failed  [new]
xtender
Member

Откуда: Мск
Сообщений: 5478
роман23t,

иногда такое может быть вызвано тем, что этот же запрос кто-то периодически пытается выполнить, но неудачно (например, без грантов или из-под другого пользователя, у него нет доступа на линк) и фейлится на парсе
30 июн 20, 17:29    [22159863]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить