安全的应用程序角色和SQL * Loader

时间:2011-12-15 23:16:40

标签: oracle sql-loader

我正在使用安全应用程序角色来授予用户访问权限。在最愚蠢的形式,它看起来像:

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 个答案:

答案 0 :(得分:1)

检查 this thread

在底部。