带数据库的Web服务器:每个用户一个连接

时间:2017-09-07 15:17:21

标签: sql database webserver database-connection

我们的目标是通过深度防御方法实施最小特权原则。在这种特殊情况下,这意味着非特权用户发送的查询不应具有数据库端的管理权限。诸如PostgreSQL之类的RDBMS提供了非常强大,富有表现力且经过良好测试的访问控制机制:RBAC,行级安全性,参数化视图等。实际上,这些控件在使用范例“1 application ==”的Web应用程序中通常完全被忽略。 1个用户“,此用户具有管理员角色。但是,重型客户端通常在数据库端使用多个不同的用户(每个最终用户一个或每个特定角色一个),从而受益于数据库的访问控制。

来自数据库的访问控制是Web应用程序中访问控制的补充。 webapp中的AC将更精确,但可能会遇到一些错误;数据库中的AC将更加宽松,但更好地执行,在应用程序错误的情况下限制损害。

因此,在我们的案例中,我们希望为每个应用程序用户创建一个DB用户。然后,与数据库的连接属于该特定用户,因此数据库可以强制简单用户不能执行管理操作。中间可能性是在执行查询之前删除某些权限,但我们首选的方法是以当前登录用户身份连接到数据库。登录密码由用户在进行身份验证时发送,我们只是将其传递给DBMS。可伸缩性对我们的应用程序来说不是一个问题,我们可以牺牲这种安全性的一些可伸缩性。

您是否有任何提示可以帮助我们实现这一目标?

0 个答案:

没有答案