用户从数据库登录

时间:2018-12-10 09:27:43

标签: sql oracle oracle-apex oracle-apex-5

我有一个APEX应用程序,需要用户(学生)登录并查看他们自己的信息。我的用户名和密码都存储在我正在使用的数据库的表中。

是否可以使用这些凭据进行单独登录?以及我将如何去做?

我对APEX还是陌生的,如果这是一个简单的问题,对不起。

非常感谢

2 个答案:

答案 0 :(得分:0)

说每个学生只需要看自己的数据就意味着-我假设(因为是关于学生的 )班级中的数据库用户(方案)与学生一样多。

如果是这样,假设他们每个人都将使用他们自己的Apex开发人员及其工作区(即他们不会共享工作区),我相信您将必须创建那么多Apex开发人员并为每个开发人员分配他们的自己的架构。

应该将其连接到内部工作空间,并以Apex管理员身份登录。

但是,因为您必须一次创建许多用户 ,所以这种方法可能很乏味。相反,由于您已经在表中存储了用户列表,因此可以利用APEX_UTIL.CREATE_USER过程,让它完成肮脏的工作。

例如,如果您的表是MY_USERS,那么这样的脚本就可以完成工作:

begin
  for cur_u in (select username, password from my_users) loop
    apex_util.create_user(p_user_name    => cur_u.username,
                          p_web_password => cur_u.password
                         );
  end loop;
end;

有关更多信息,请阅读:https://docs.oracle.com/database/apex-18.2/AEAPI/CREATE_USER-Procedure.htm#AEAPI114

答案 1 :(得分:0)

我将使用自定义身份验证方案。它已记录在案,因此,如果您需要帮助,只需单击“?”各个字段旁边的按钮。

Custom Authentication Scheme

该示例代码显然无法正常工作,因此请盲目复制和粘贴。使其适应您的情况,并希望您正在加密/散列密码。

这使您开始登录(身份验证)。接下来,在问题的第二部分,学生应该只看到“他们自己的信息”(授权)。这个问题没有明确的答案,因为有许多可用的策略和许多问题要考虑。例如,您如何设计应用程序和数据架构,可以使用哪些数据库功能以及需要满足的法规遵从性。

可以在here的Real Application Security和Virtual Private Database上找到阅读这些“数据库功能”的一个很好的起点。

替代方案包括“ {V3穷人对VPD的追求”,Martin D'Souza wrote大约已有很长时间了。

HTH!