首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用户从数据库登录

用户从数据库登录
EN

Stack Overflow用户
提问于 2018-12-10 17:27:43
回答 2查看 84关注 0票数 0

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

有没有办法使用这些凭据来单独登录?我该怎么做呢?

我是APEX的新手,所以如果这是一个简单的问题,很抱歉。

非常感谢

EN

回答 2

Stack Overflow用户

发布于 2018-12-11 04:36:03

说每个学生只能看到他们自己的数据意味着-我假设(就像学生一样)你班上的学生有一样多的数据库用户(模式)。

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

这应该连接到内部工作区,以Apex管理员身份登录。

然而,,因为你必须一次创建许多用户,这种方法可能会很乏味。相反,因为您已经将用户列表存储在一个表中,所以可以利用APEX_UTIL.CREATE_USER过程并让它来完成这项肮脏的工作。

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

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2018-12-13 04:20:25

我将使用自定义身份验证方案。这是文档,所以如果你需要帮助,只需点击"?“各个字段旁边的按钮。

示例代码显然不能正常工作,所以请不要盲目地复制粘贴()。根据您的情况调整它,希望您可以对密码进行加密/散列。

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

阅读这些“数据库特性”的一个很好的起点是here,on Real Application Security and Virtual Private Database。

另一种选择包括一个“穷人的VPD实现”,这是很久以前的Martin D'Souza wrote

哈!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53702715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档