我有一个APEX应用程序中,我需要用户(学生)能够登录并查看自己的信息。我将用户名和密码都存储在我正在使用的数据库中的一个表中。
有没有办法使用这些凭据来单独登录?我该怎么做呢?
我是APEX的新手,所以如果这是一个简单的问题,很抱歉。
非常感谢
发布于 2018-12-11 04:36:03
说每个学生只能看到他们自己的数据意味着-我假设(就像学生一样)你班上的学生有一样多的数据库用户(模式)。
如果是这样的话,假设他们每个人都将使用自己的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
发布于 2018-12-13 04:20:25
我将使用自定义身份验证方案。这是文档,所以如果你需要帮助,只需点击"?“各个字段旁边的按钮。
示例代码显然不能正常工作,所以请不要盲目地复制粘贴()。根据您的情况调整它,希望您可以对密码进行加密/散列。
这使您可以开始登录(身份验证)。接下来,对于你的问题的第二部分,学生应该只看到“他们自己的信息”(授权)。这个问题没有明确的答案,因为有许多可用的策略和许多需要考虑的问题。例如,您如何设计您的应用程序和数据模式,您可以使用哪些数据库功能,以及您需要满足的法规遵从性。
阅读这些“数据库特性”的一个很好的起点是here,on Real Application Security and Virtual Private Database。
另一种选择包括一个“穷人的VPD实现”,这是很久以前的Martin D'Souza wrote。
哈!
https://stackoverflow.com/questions/53702715
复制相似问题