首页 > 新闻系统 > 编程天地 > 文章正文

在 DB2 9 中部署定制的安全性插件

2007-11-28 13:52:12 来源:论坛整理 作者:Kevin 点击:
本文给出了 DB2 9 中 DB2 安全插件的增强信息,详细阐述了安全性插件的职责。本文还提出了基于这些职责的最小完备测试列表。现在您应知道如何使用安全性插件 loader 来测试定制的安全性插件,该 loader 可以在 下载 部分中找到。

 
  介绍

  在获知用户是否被授权进行特定操作之前,DB 2 必须能够获知外部用户的有效数据库授权 ID 及其所属的组。为了找到有效数据库授权 ID,需要确保外部用户就是所声称的用户,然后将其外部用户 ID 映射到内部 DB2 授权 ID。此过程被称为身份验证。DB2 没有用于维护用户 ID 和密码,或用户 ID 组成员关系的机制。

  安全性插件的作用是什么?

  有两个事件需要使用(客户端或服务器端)身份验证插件或组成员查找插件:

  • 连接或实例连接时
  • 实例级操作授权时

  实例级操作是涉及 DB2 实例维护的任何操作。实例级操作的典型例子为更新数据库管理器配置参数和启动数据库管理器。

  首先,我们看一下实例级操作。大多数实例级操作命令不会接受用户 ID 或密码作为输入部分。在这种情况下,DB2 使用客户端身份验证插件(即 client auth 插件)找到发出命令的当前登录用户。(这就是所谓的获得默认登录上下文。登录上下文可以是用户 ID/密码对或 Generic Security Services API [GSS-API] 凭证,如 Kerberos 票据)。一旦获取用户的身份,将使用 DB2 组成员查找插件(即 group plug-in)为用户生成组授权 ID 列表。

  在连接建立或实例连接中,用户 ID 和密码是可选的。如果用户选择不指定用户 ID 和密码,则 DB2 使用客户端身份验证插件来获得默认登录上下文。然后,将登录上下文发送到服务器以获取用户的组授权 ID。如果用户选择指定用户 ID 和密码,且未将身份验证类型数据库管理器配置参数指定为 CLIENT,则 DB2 执行下面的步骤:

表 1. 除 CLIENT 之外的身份验证的信息流

客户机 信息流(如果可用) 服务器
(客户端身份验证插件)
如果已实现 db2secRemapUserid 且身份验证插件是基于用户 ID/密码的,则重新映射用户 ID、密码和名称空间。请注意,该过程也适用于默认登录上下文情况。
发送登录上下文到服务器。 登录上下文 -> 服务器接收了登录上下文。
(服务器端身份验证插件)
验证登录上下文(验证用户 ID 和密码或 GSS-API 凭证,如 Kerberos 票据),并获取用户的授权 ID。
获取正在使用服务器上组成员查找插件的用户的组授权 ID。

  如果在数据库服务器上将身份验证类型指定为 CLIENT 身份验证,则执行下面的步骤:

表 2. CLIENT 身份验证的信息流

客户机 信息流(如果可用) 服务器
(客户端身份验证插件)
如果已实现 db2secRemapUserid 且身份验证插件是基于用户 ID/密码的,则重新映射用户 ID、密码和名称空间。请注意,该过程也适用于默认登录上下文情况。
(客户端身份验证插件)
验证登录上下文(验证用户 ID 和密码或 GSS-API 凭证,如 Kerberos 票据)。
发送用户 ID 到服务器。 user ID -> (服务器端身份验证插件)服务器接收了用户 ID 并获取用户的授权 ID。
获取正在使用服务器上组成员查找插件的用户的组授权 ID。

  建议的最小完备测试

  基于前文所述的安全性插件职责,建议安全性插件至少应进行下面的测试:

  1. 使用未授权的用户,尝试执行实例级操作,如获得数据库管理器配置参数。此操作应该失败。
  2. 使用授权的用户,尝试执行实例级操作。此操作应该成功。
  3. 使用有
    9 7 3 1 2 3 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

本周软件下载排行

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203