Безопасные роли приложений и SQL * Loader - PullRequest
0 голосов
/ 16 декабря 2011

Я работаю с безопасными ролями приложений, чтобы предоставить доступ пользователям.В своей самой тупой форме это выглядит так:

create or replace package body main_user.PACK_SAR is
procedure grant_role is
begin
    dbms_session.set_role('TEST_ROLE');
end;
end PACK_SAR;

Пакет находится в authid current_user, как и должно быть.Роль и пользователь настраиваются следующим образом:

create role test_role identified using pack_sar;
grant select on task to test_role;

create user test_user identified by a;
grant create session to test_user;
grant execute on pack_sar to test_user;

Затем я вхожу в систему со своим test_user, вызываю процедуру, и все в порядке:

execute main_user.pack_sar.grant_role;
select * from main_user.task;
[... data from the task table ...]

Но теперь я хотел быиспользовать моего тестового пользователя с SQL * Loader, поэтому я подумал, что собираюсь выполнить вызов процедуры в триггере after logon:

create or replace trigger test_user.after_logon
after logon on test_user.schema
begin
    main_user.pack_sar.grant_role;
end;

Но, похоже, это ничего не делает, я неполучить роль после входа в систему ... Есть ли способ сделать что-то подобное?Или использование безопасных ролей приложений в SQL * Loader невозможно?

Заранее спасибо за любую идею.

1 Ответ

1 голос
/ 16 декабря 2011

Отметьте эту тему

внизу.

...