Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle RAS global callback / 13 сообщений из 13, страница 1 из 1
23.08.2016, 10:53:45
    #39296045
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
Народ, а кто-нибудь делал эту штуку? У меня не выходит, документация кривая, ибо судя по всему коллбэки должны иметь какой-то набор параметров, а примеров нигде нет. То что есть в инете только на выход из сессии, да и не пашет тоже. до 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
23.08.2016, 13:58:32
    #39296266
dba123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
Shtock,

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

Но порядок вызова процедур немного другой, там пользователь и роли создаются заранее(принципиальный пакет),
а у тебя 'us' непонятно откуда взялся.
...
Рейтинг: 0 / 0
24.08.2016, 09:26:18
    #39296839
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
ras-юзера us я сделал сам очевидно. а с чего это ты решил, что в apex используются global callback?
...
Рейтинг: 0 / 0
24.08.2016, 12:32:32
    #39297016
dba123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
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
24.08.2016, 13:12:47
    #39297051
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
Код: 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
24.08.2016, 13:14:35
    #39297054
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
блин, я нашёл там нужный кусок "PROCEDURE callback_procedure (sessionid in raw, error out pls_integer)". очень странно почему раньше этого я не находил. возможно что позавчера мы зарайзили запрос в oracle с убер-важным статусом. Попробую отпишусь.
...
Рейтинг: 0 / 0
24.08.2016, 13:16:18
    #39297056
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
я практически уверен в этом. ибо описание процы появилось сразу же над типами эвентов. я тупо не смог бы это пропустить ну или совсем "степ бай степ пока от монитора не ослеп". попробую и отпишусь.
...
Рейтинг: 0 / 0
24.08.2016, 13:34:06
    #39297069
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
не, вчера уже была. но я чую идея уже в аду. я посмотрел что за код делает ras через expand_sql_text и я охреневаю, насколько он иной по-сравнению с vpd и, уверен, что на реальных объемах данных он ляжет.
...
Рейтинг: 0 / 0
24.08.2016, 13:49:46
    #39297086
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle RAS global callback
чтобы не быть голословным скажу, что запрос из 18 символов он переписал в 8160 с кучей страшных фич а-ля lateral, sys_xqseq2con, to_clob и прочего ада.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle RAS global callback / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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