保护多层应用程序中数据的基本方案

本主题介绍一些构建基块方案,说明在确定强制实施安全性的位置时讨论的条件。

受信任的服务器方案

  • 数据库完全信任 COM+ 应用程序,以便对最终用户进行身份验证并授权最终用户访问数据库中的数据。
  • 最好的情况是,除了通过应用程序之外,数据库不受任何访问保护。
  • COM+ 应用程序使用基于角色的安全性来授权用户。
  • 连接在 COM+ 应用程序的标识下打开,并且完全可共用。
  • 审核和日志记录可由 COM+ 应用程序完成,或者此信息可由应用程序传递到数据库中。

此方案最适合可预测类别的用户可访问的数据,并且可以封装在角色中。 例如,只有“经理”、“柜员”和“会计”才有权访问帐户。 在中间层中强制实施每个实现的具体操作的业务逻辑。

模拟方案

  • 该数据库对最终用户进行自己的身份验证和授权,以帮助限制最终用户对数据库中数据的访问。
  • 每当客户端访问数据库时,COM+ 应用程序都会模拟客户端。
  • 连接按调用进行,不能重复使用。

此方案最适合与非常小的用户类紧密绑定的数据。 例如,每个员工只能访问自己的人事文件,每个经理只能访问其下属的人事文件。

混合方案

上述两种方案的组合,其中模拟仅在需要时才使用。

在具有混合用户-数据关系的情况下,此方案最适用。 例如,“经理”、“柜员”、“会计”和成千上万的个人 Web 客户端只能访问自己的帐户。 可以通过应用程序(可能具有单独的组件)分隔逻辑路径来处理后一类用户,尤其是在这些用户的性能假设不同的情况下。

使用 Microsoft SQL Server 角色的受信任方案

  • Microsoft SQL Server 7.0 及更高版本可以使用角色授权访问特定行,但信任 COM+ 应用程序对用户进行身份验证和授权,并将其映射到数据库中的正确角色。
  • COM+ 应用程序授权用户使用基于角色的安全性,应用程序角色与数据库角色具有很好的对应关系。
  • 可以打开特定于特定数据库角色的连接。 如果这些连接由 COM+ 应用程序中的共用对象持有,则可以重复使用这些连接。 有关如何执行此操作的详细信息,请参阅 COM+ 对象池
  • 审核和日志记录可由 COM+ 应用程序完成,或者此信息可由应用程序传递到数据库中。

此方案最适合的用户和数据类型通常与第一个受信任的服务器方案中相同,因为 COM+ 应用程序仍在很大程度上受信任,能够正确处理授权。 但是,它确实有助于保护数据库免受未经授权的访问,同时允许从 COM+ 应用程序外部的多个源进行访问,而不会产生模拟方案带来的扩展和性能损失。

确定强制实施安全性的位置

多层应用程序安全性