Oracle apex oracle apex 18.2自定义身份验证和授权
我正在oracle Apex 18.2中开发一个小型ERP,我想实现如下所示的自定义安全性 1) 用户应通过自定义表进行身份验证 2) 身份验证后,用户应根据自定义表中指定的角色授权给应用程序 3) 用户必须具有从表中读取、插入、更新和删除操作的权限 举例来说 我在谷歌上搜索过一些内容,但根据我所知,有很多令人困惑的选项,需要推荐和建议。1)用户应该从自定义表中进行身份验证Oracle apex oracle apex 18.2自定义身份验证和授权,oracle-apex,oracle12c,Oracle Apex,Oracle12c,我正在oracle Apex 18.2中开发一个小型ERP,我想实现如下所示的自定义安全性 1) 用户应通过自定义表进行身份验证 2) 身份验证后,用户应根据自定义表中指定的角色授权给应用程序 3) 用户必须具有从表中读取、插入、更新和删除操作的权限 举例来说 我在谷歌上搜索过一些内容,但根据我所知,有很多令人困惑的选项,需要推荐和建议。1)用户应该从自定义表中进行身份验证 创建一个身份验证方案,并将方案类型设置为Custom 实现身份验证功能并将代码放在PL/SQL代码部分。该函数提供了从登
- 创建一个身份验证方案,并将方案类型设置为
Custom
- 实现身份验证功能并将代码放在PL/SQL代码部分。该函数提供了从登录页面输入的用户名和密码。使用它来验证匹配。始终加密用户的密码。函数根据结果返回true或false李>
function my_authentication (
p_username in varchar2,
p_password in varchar2 )
return boolean
is
l_user my_users.user_name%type := upper(p_username);
l_pwd my_users.password%type;
l_id my_users.id%type;
begin
select id , password
into l_id, l_pwd
from my_users
where user_name = l_user;
return l_pwd = rawtohex(sys.dbms_crypto.hash (
sys.utl_raw.cast_to_raw(p_password||l_id||l_user),
sys.dbms_crypto.hash_sh512 ));
exception
when NO_DATA_FOUND then return false;
end;
- 将Authentic函数设置为
my\u身份验证
- 同样在PL/SQL代码区域中,实现后身份验证过程,例如,
,该过程检索用户的角色,并将其添加到应用程序项或APEX集合post_login
- 将过程名称添加到“认证后过程名称”字段中,例如
Post\u login
- 基于上述值创建授权方案李>
- 您可以根据授权方案限制页面、页面项目(只读或可编辑)、按钮和流程
- 根据您的Oracle许可证,您还可以实施Oracle Real Application Security(RAS)或虚拟专用数据库(VPD),以在“数据库级别”管理访问,这无疑更加安全
- 创建一个身份验证方案,并将方案类型设置为
Custom
- 实现身份验证功能并将代码放在PL/SQL代码部分。该函数提供了从登录页面输入的用户名和密码。使用它来验证匹配。始终加密用户的密码。函数根据结果返回true或false李>
function my_authentication (
p_username in varchar2,
p_password in varchar2 )
return boolean
is
l_user my_users.user_name%type := upper(p_username);
l_pwd my_users.password%type;
l_id my_users.id%type;
begin
select id , password
into l_id, l_pwd
from my_users
where user_name = l_user;
return l_pwd = rawtohex(sys.dbms_crypto.hash (
sys.utl_raw.cast_to_raw(p_password||l_id||l_user),
sys.dbms_crypto.hash_sh512 ));
exception
when NO_DATA_FOUND then return false;
end;
- 将Authentic函数设置为
my\u身份验证
- 同样在PL/SQL代码区域中,实现后身份验证过程,例如,
,该过程检索用户的角色,并将其添加到应用程序项或APEX集合post_login
- 将过程名称添加到“认证后过程名称”字段中,例如
Post\u login
- 基于上述值创建授权方案李>
- 您可以根据授权方案限制页面、页面项目(只读或可编辑)、按钮和流程
- 根据您的Oracle许可证,您还可以实施Oracle Real Application Security(RAS)或虚拟专用数据库(VPD),以在“数据库级别”管理访问,这无疑更加安全