0

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

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

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

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

你在这种情况下如何进行?

+0

如果有一种方法可以使用撇号键(')进行正确的英语拼写,那将有所帮助。不要拼出它“不”,这使得它很难阅读。句子开头的大写字母有助于更容易阅读。请编辑您的问题以便阅读。 –

+0

对不起,下次我会记得。 – irobson

回答

1

我认为使用数据库的内置机制总是比滚动我们自己的首选。这与用户登录用户一样。

专用用户帐户最大的优点是我们可以将给定的会话与指定的用户相关联。呃,是的,呃。但重要的是,认为像审计用户活动或追踪某些过程中的性能问题在使用通用帐户的Web应用程序中更困难。

要解决您的主要异议,我们不必在用户级别管理数据库权限。这就是我们有角色的原因。对于普通用户,角色将提供足够的权限。

所以:

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

Find out more

+0

我真的了解数据库用户的角色,但我不确定是否更好的方法来管理用户应用程序权限 - 我相信它是一种不同类型的角色,其中数据库用户具有角色数据库的对象和应用程序的用户具有业务角色的权限。我仍然困惑吗?我会检查链接,谢谢。 – irobson

+0

换句话说,这意味着我需要为每个用户logOn创建一个Web数据源。 – irobson