使用 DB2 建立可信连接
可信连接允许应用程序服务器使用 DB2® 可信上下文对象与其凭证受 DB2 服务器信任并因此能够打开连接的用户建立连接。通过建立可信上下文,此用户将受到信任,于是可以在 DB2 服务器上声明其他用户标识,而不必重新认证。这还可以避免向单个用户分配所有特权,从而增强了 DB2 数据库的安全性。实现可信连接时会引起客户机标识传播,而利用连接池可以避免使用其他标识来关闭和重新打开连接时带来的性能损失。
为了避免由于建立新连接而带来的巨大开销,连接管理器维护了一个连接池,在该连接池中,原先用于打开各个连接的凭证均可以跟踪到所打开的连接。当应用程序需要连接时,连接管理器将使用凭证对象来匹配连接池中的可用连接。如果找不到可用连接,但尚未到达最大连接数,那么连接池管理器将使用该凭证对象打开一个新连接。此连接映射是供应用程序服务器使用的缺省连接映射,并且被称为多对一凭证映射,这是因为使用主体集中通常与 RunAs 标识并不相同的凭证对象打开了该连接。这种简单映射使建立连接池很容易,但调用者标识从不传播至数据库服务器。
要将调用者标识传播至数据库服务器,您可以插入 Java™ 认证和授权服务 (JAAS) 登录模块。使用此方法将应用程序服务器用户凭证映射至适合于数据库服务器安全领域的用户凭证。此方法维护调用者标识,但不会使用连接池。
使用可信连接取代缺省映射或 JAAS 映射连接至数据源。可信连接支持客户机标识传播,并且还可以使用连接池来消除由于使用其他标识关闭和重新打开连接时带来的性能损失。可信连接使用 DB2 可信上下文对象。
![[z/OS]](../images/ngzos.gif)
使用可信连接时可提供所需的插件点,以支持添加您自己的 DB2 可信上下文的安全实现。可信连接将用于建立连接的标识与访问后端服务器服务的标识隔开。连接由凭证受 DB2 服务器信任并因此能够打开连接的用户建立。该用户随后也可以信任来声明其他用户的标识。此声明可避免向单个用户授予所有特权,从而也有助于加强数据库安全性。
当应用程序请求与数据库的连接时,连接管理器可查找任何闲置的可信连接并向该后端服务器声明用户标识。对后端服务器执行的所有操作均来自该已声明的用户标识。如果后端服务器使用的用户资源库有别于应用程序服务器的用户资源库,那么可能仍需要使用标识映射。
- 此资源主体集所表示的资源主体对象
- 专用凭证集中的 PasswordCredential 对象
- 主体集合中的 IdentityPrincipal 对象