有两种关键方法,它们都对系统的设计产生重大影响,因此在不进行重大重写的情况下从一种方法转移到另一种是不容易的。在选择之前,您需要了解您公司的安全治理策略是什么。
1) 每个用户都有通过应用程序携带的凭据,用于应用程序正在使用的服务;在您的情况下,Oracle 数据库使用这些用户凭据连接到数据库。缺点是每个用户都需要每个安全服务的凭据。这是一种合理的安全方法,但也需要大量额外的工作来提供和维护用户凭据。您的数据库管理员将需要主动管理用户凭据,这可能与您公司的安全治理策略背道而驰。
2) 应用程序数据库凭证存储在安全目录服务中,例如安全 LDAP。应用程序使用用户的凭据访问目录服务。目录服务为正在访问的服务返回适当的凭据。
在这两种情况下,应将数据库凭据限制为仅执行适当的操作。凭证应反映业务流程的要求,例如;它们允许从定义的视图/表中选择、插入到其他视图中,但不能创建、更新或删除表。在第二种方法中,为每个主要业务流程使用单独的凭据,例如订单处理、会计、人力资源等。
但是请记住,安全性就像洋葱层,如果有人剥离了这些层来访问应用程序,那么他们就可以访问数据库连接池配置文件。他们可能会特洛伊木马应用程序来捕获用户的凭据。这就是良好的安全治理策略的用武之地。
安全治理是一个复杂的问题,需要高级管理层的承诺,因为如果您需要为您的实时平台提供这种级别的安全性,则需要付出代价。您需要将开发职责与部署、操作和用户权限管理分开。您可能还需要有安全审计员,他们拥有查看更改的完全访问权限,但无法更改配置。它远非简单,而且是高薪的专业。