powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle RAS global callback
13 сообщений из 13, страница 1 из 1
Oracle RAS global callback
    #39296045
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а кто-нибудь делал эту штуку? У меня не выходит, документация кривая, ибо судя по всему коллбэки должны иметь какой-то набор параметров, а примеров нигде нет. То что есть в инете только на выход из сессии, да и не пашет тоже. до AUTHID CURRENT_USER методом тыка дошёл. до остального непонятно как.

пример

реальность
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create or replace package RAS_ROUTINES AUTHID CURRENT_USER is
procedure INIT_SESSION;
end;
/
create or replace package body RAS_ROUTINES is
procedure INIT_SESSION is
begin
    SYS.DBMS_XS_SESSIONS.SET_ATTRIBUTE('SECURITY_NAMESPACE', 'AUTO_LOADED', 'LOADED_ON_INIT');
end INIT_SESSION;
end;
/



создаём сессию
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare
  sessionid raw(16);
  gsessionid varchar2(32);
  nsList DBMS_XS_NSATTRLIST;
begin
  nsList := DBMS_XS_NSATTRLIST(DBMS_XS_NSATTR('security_namespace'));
  sys.dbms_xs_sessions.create_session('us', sessionid);
  gsessionid := rawtohex(sessionid);
  SYS.DBMS_XS_SESSIONS.ATTACH_SESSION(sessionid, NULL, NULL, NULL, NULL, nsList);
  dbms_output.put_line(gsessionid);
end ;



и
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
ORA-46071: Error occured in event handler "TST"."RAS_ROUTINES"."INIT_SESSION"
ORA-06550: line 1, column 8:
PLS-00306: wrong number or types of arguments in call to 'INIT_SESSION'
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
ORA-06512: at "SYS.DBMS_XS_SESSIONS_FFI", line 3
ORA-06512: at "SYS.DBMS_XS_SESSIONS", line 45
ORA-06512: at line 7
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296266
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock,

И даже 5-й Апекс не работает? (2014879.1)
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296492
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при чём тут апекс :)
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296496
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пока руками, без rasadm. тем более знающие люди говорят он кривой и косой и они правили исходники чтобы верно работало.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296506
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитал доку. там в целом ничего нету к теме, а то я уж обрадовался.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296800
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockА при чём тут апекс :)
В апекс-приложениях данная схема аутентификации и последующей авторизации на страницах работает.
в 5.0 заявлено точно, даже приложение администрирования есть.

Но порядок вызова процедур немного другой, там пользователь и роли создаются заранее(принципиальный пакет),
а у тебя 'us' непонятно откуда взялся.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39296839
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ras-юзера us я сделал сам очевидно. а с чего это ты решил, что в apex используются global callback?
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297016
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock,

Покажи скрипт, где и global callback регистрируется, и всё остальное
все примеры из доки
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
--1) init---------
sqlplus "/ as sysdba"
EXEC SYS.XS_ADMIN_UTIL.GRANT_SYSTEM_PRIVILEGE('ADMINISTER_SESSION', 'SCOTT', XS_ADMIN_UTIL.PTYPE_DB);

--2)create app user
connect scott/

DECLARE 
st_date TIMESTAMP WITH TIME ZONE;
BEGIN
  st_date := systimestamp;
  SYS.XS_PRINCIPAL.CREATE_USER(name=>'appuser1',schema=>'scott',start_date=>st_date);
END;
/
--3) set password app user
BEGIN
  SYS.XS_PRINCIPAL.SET_PASSWORD('APPUSER1','2Hrd2Guess',XS_PRINCIPAL.XS_SHA512);
END;
/

--4) check auth
--BEGIN
--  SYS.XS_PRINCIPAL.SET_VERIFIER('APPUSER1','6DFF060084ECE67F',XS_PRINCIPAL.XS_SHA512);
--END;
--/

--5) create roles
BEGIN
  SYS.XS_PRINCIPAL.CREATE_ROLE('hrmgr');
END;
/
DECLARE 
  st_date TIMESTAMP WITH TIME ZONE;
BEGIN
  st_date := SYSTIMESTAMP;
  SYS.XS_PRINCIPAL.CREATE_ROLE(name=>'hrrep',
                           enabled=>true,
                           start_date=>st_date);
END;
/
--6) grant role to app user
DECLARE 
  rg_list XS$ROLE_GRANT_LIST; 
BEGIN
  rg_list := XS$ROLE_GRANT_LIST(XS$ROLE_GRANT_TYPE('HRREP'),
                                XS$ROLE_GRANT_TYPE('HRMGR'));
 
  SYS.XS_PRINCIPAL.GRANT_ROLES('APPUSER1', rg_list);
END;
/

--7) create application session 
declare
 sessionid raw(16);
 l_usr     sys.v_$session.username%type;
 l_sid     sys.v_$session.sid%type;

begin
  SYS.DBMS_XS_SESSIONS.CREATE_SESSION('APPUSER1', sessionid);
--  select username, sid into l_usr,l_sid from sys.v_$session v where v.sid = (select sid from sys.v_$mystat where rownum=1);
--  dbms_output.put_line(l_usr||';'||l_sid);   

  -- присоединить сессию приложения к текущей БД сессиии
  SYS.DBMS_XS_SESSIONS.ATTACH_SESSION(sessionid);
--  select username, sid into l_usr,l_sid from sys.v_$session v where v.sid = (select sid from sys.v_$mystat where rownum=1);
--  dbms_output.put_line(l_usr||';'||l_sid);   

  SYS.DBMS_XS_SESSIONS.DETACH_SESSION;
--  select username, sid into l_usr,l_sid from sys.v_$session v where v.sid = (select sid from sys.v_$mystat where rownum=1);
--  dbms_output.put_line(l_usr||';'||l_sid);   

  SYS.DBMS_XS_SESSIONS.DESTROY_SESSION(sessionid);
end;
/

SCOTT;134
XS$NULL;134
SCOTT;134
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297051
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
BEGIN
 SYS.DBMS_XS_SESSIONS.ADD_GLOBAL_CALLBACK (  DBMS_XS_SESSIONS.CREATE_SESSION_EVENT,  'TST','RAS_ROUTINES','INIT_SESSION');

 SYS.DBMS_XS_SESSIONS.ENABLE_GLOBAL_CALLBACK (  DBMS_XS_SESSIONS.CREATE_SESSION_EVENT,  TRUE, 'TST','RAS_ROUTINES','INIT_SESSION');
 commit;
END;



ошибка и код пакета были ранее. Очевидно, что должен быть определённый набор параметров и имена для коллбэков. но хз какой.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297054
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, я нашёл там нужный кусок "PROCEDURE callback_procedure (sessionid in raw, error out pls_integer)". очень странно почему раньше этого я не находил. возможно что позавчера мы зарайзили запрос в oracle с убер-важным статусом. Попробую отпишусь.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297056
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я практически уверен в этом. ибо описание процы появилось сразу же над типами эвентов. я тупо не смог бы это пропустить ну или совсем "степ бай степ пока от монитора не ослеп". попробую и отпишусь.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297069
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, вчера уже была. но я чую идея уже в аду. я посмотрел что за код делает ras через expand_sql_text и я охреневаю, насколько он иной по-сравнению с vpd и, уверен, что на реальных объемах данных он ляжет.
...
Рейтинг: 0 / 0
Oracle RAS global callback
    #39297086
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы не быть голословным скажу, что запрос из 18 символов он переписал в 8160 с кучей страшных фич а-ля lateral, sys_xqseq2con, to_clob и прочего ада.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle RAS global callback
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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