应用用户应该是数据库用户吗?

前端之家收集整理的这篇文章主要介绍了应用用户应该是数据库用户吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我以前的工作涉及到大量数据库的大量数据的维护和编程.用户主要通过Intranet Web界面查看此数据.每个用户帐户不是拥有用户帐户表,而是RDBMS中的一个真正的一流帐户,允许他们使用自己的查询工具等进行连接,并允许我们通过RDBMS本身控制访问使用我们自己的应用程序逻辑.

这是一个很好的设置,假设你不在公共内部网上,并处理数百万(潜在的恶意)用户或某些东西?或者最好定义自己的手段来处理用户帐户,自己的权限,自己的应用程序安全逻辑,并且只提供RDBMS帐户来为具有特殊需求的用户提供支持

解决方法

我不同意使用数据库进行用户访问控制与其他人一样危险.我来自Oracle Forms Development领域,这种类型的用户访问控制是常规.就像任何设计决策一样,它具有优点和缺点.

其中一个优点是可以从数据库中的单个设置中控制EACH表的select / insert / update / delete权限.在一个系统上,我们有4个不同的应用程序(由不同的团队和不同的语言管理)打到相同的数据库表.我们能够声明只有具有Manager角色的用户能够在特定表格中插入/更新/删除数据.如果我们没有通过数据库进行管理,那么每个应用程序团队都必须在整个应用程序中正确实现(重复)该逻辑.如果一个应用程序出错,那么其他应用程序将遭受损失.此外,如果您想要更改单个资源的权限,您将有重复的代码来管理.

另一个优点是我们不需要担心将用户密码存储数据库表中(以及它附带的所有限制).

我不同意“数据库用户帐户本身比您的应用程序定义的帐户更危险”.更改数据库特定权限所需的权限通常比在“PERSONS”表中更新/删除单个行所需的权限更加困难.

而且“缩放”并不是问题,因为我们为Oracle角色分配了权限,然后将角色分配给用户.使用单个Oracle语句,我们可以更改数百万用户的权限(不是我们拥有那么多用户).

申请授权不是一个微不足道的问题.许多定制解决方案有黑洞可以轻松利用的漏洞.像Oracle这样的大牌子已经提出了很多思想和代码来提供强大的应用程序授权系统.我同意使用Oracle安全性不适用于每个应用程序.但是,我不会很快就解决这个问题.

原文链接:https://www.f2er.com/mssql/82796.html

猜你在找的MsSQL相关文章