【问题标题】:How to manage user/permissions in an environment web/PL/SQL correctly?如何正确管理环境 web/PL/SQL 中的用户/权限?
【发布时间】:2011-11-18 08:26:37
【问题描述】:

我的团队将开发一个内部(已知用户)应用程序,该应用程序的架构基于 Java 作为前端,PL/SQL 作为后端。因此,目前我们正在考虑一种更好的解决方案来管理用户/权限,我们有两种选择:

  1. 每个用户都有自己的数据库帐户,并被授予权限。目前遗留系统使用这种方法,我不喜欢它,因为它基于数据库对象的粒度来管理权限。所以,我认为每个用户都有一个数据库连接是一个糟糕的选择。你能在这里看到更多的缺点吗?

  2. 在数据库中构建一些表来存储用户及其权限/配置文件,并构建一个 PL/SQL 过程来进行登录,生成一个令牌并包含一个参数给所有其他 PL/SQL 来验证这个令牌和然后授权(或不授权)执行。

所以,您可以问我:为什么不在您的网络应用程序中管理您的权限?答:那些 PL/SQL 已经完成并被所有遗留系统使用,并且这个 Web 应用程序应该按照它运行(即,用户权限应该由 PL/SQL 管理,其粒度基于 please。)

在这种情况下您将如何处理?

【问题讨论】:

  • 如果有办法使用撇号键 (') 进行正确的英文拼写,那将有所帮助。不要拼写为“dont”,这样会让人难以阅读。句子开头的大写字母也有助于使其更易于阅读。请编辑您的问题,使其易于阅读。
  • 对不起,下次我会记住的。

标签: oracle security plsql database-permissions user-permissions


【解决方案1】:

我认为使用数据库的内置机制总是优于滚动我们自己的机制。这同样适用于登录用户。

专用用户帐户的最大优点是我们可以将给定会话与指定用户相关联。嗯,是的,呃。但关键是,在具有通用帐户的 Web 应用程序中,像审计用户活动或跟踪某些流程中的性能问题这样的思考要困难得多。

为了解决您的主要反对意见,我们不必在用户级别管理数据库权限。这就是为什么我们有角色。对于普通用户,角色将提供足够的权限。

所以:

  1. 定义一组与您的应用程序服务的各种业务作业相匹配的角色。
  2. 向这些角色授予系统和对象权限;请记住,角色可以是附加的(即我们可以将一个角色的权限授予另一个角色)。
  3. 向用户授予角色。

Find out more.

【讨论】:

  • 我真的了解数据库用户的角色,但我不确定这是否是管理用户应用程序权限的更好方法 - 我相信这是不同类型的角色,其中数据库的用户拥有数据库对象的角色,应用程序的用户拥有业务角色的权限。我还在迷茫吗?我会检查链接,谢谢。
  • 换句话说,这意味着我需要为每个用户登录创建一个网络数据源。
猜你喜欢
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多