要定制 Db2® 安全系统的认证行为,您可以使用 GSS-API 开发自己的认证插件,或者从第三方购买一个。
准备工作
对于 Kerberos 之外的插件类型,在客户机和服务器上必须具有相匹配的插件名称和相同的插件类型。 客户机和服务器上的插件不必来自同一个供应商,但是它们必须生成和使用兼容的 GSS-API 令牌。 由于 Kerberos 插件都已实现标准化,因此,可以接受客户机和服务器上部署的 Kerberos 插件的任意组合。 但是,不太标准的 GSS-API 机制的不同实现(例如 x.509 证书)可能只与 DB2 数据库系统部分兼容。 所有 GSS-API 认证插件都必须放在客户机插件目录或服务器插件目录中,这取决于期望使用这些插件的方法。 如果一个插件放在客户机插件目录中,那么此插件将用于本地授权检查,当客户机尝试连接至服务器时也是如此。 如果此插件放在服务器插件目录中,那么它将用于处理与服务器的传入连接,并且,每当发出 GRANT 语句而没有指定关键字 USER 或 GROUP 时,就会将此插件用于检查授权标识是否存在并且有效。注: 必须先停止 Db2 服务器或使用插件的任何应用程序,然后才能部署 现有 插件的 新 版本。 未定义的行为包括:如果一个插件已经具有了新版本(名称不变),而某个进程仍在使用此插件,那么就会进行限制。 当您首次部署插件或者未使用该插件时,此限制将不起作用。
在获得适合于您所在数据库管理系统的 GSS-API 认证插件之后,就可以部署这些插件。
过程
- 要在数据库服务器上部署 GSS-API 认证插件,请在服务器上执行下列步骤:
- 复制服务器插件目录中的 GSS-API 认证插件库。
可以将许多 GSS-API 插件复制到此目录中。
- 使用 GSS-API 插件目录中安装的插件名称的有序逗号分隔列表来更新数据库管理器配置参数 srvcon_gssplugin_list 。
- 执行下列任意一项操作:
- 将数据库管理器配置参数 srvcon_auth 设置为
GSSPLUGIN 或 GSS_SERVER_ENCRYPT,这是使服务器能够使用 GSSAPI PLUGIN 认证方法的一种方式。 或者:
- 将数据库管理器配置参数 srvcon_auth 设置为 NOT_SPECIFIED,并将 authentication 设置为 GSSPLUGIN 或 GSS_SERVER_ENCRYPT,这是使服务器能够使用 GSSAPI PLUGIN 认证方法的一种方式。
- 要在数据库客户机上部署 GSS-API 认证插件,请在每台客户机上执行下列步骤:
- 复制客户机插件目录中的 GSS-API 认证插件库。
可以将许多 GSS-API 插件复制到此目录中。 客户机通过选取客户机上提供的服务器插件列表中包含的第一个 GSS-API 插件来选择要在 CONNECT 或 ATTACH 操作期间认证的 GSS-API 插件。
- 可选: 对客户机将访问的数据库进行编目,指示客户机将仅接受 GSS-API 认证插件作为认证机制。
例如:
CATALOG DB testdb AT NODE testnode AUTHENTICATION GSSPLUGIN
- 要在使用 GSS-API 认证插件的客户机、服务器或网关上进行本地授权,请执行下列步骤:
- 复制该客户机、服务器或网关上的客户机插件目录中的 GSS-API 认证插件库。
- 使用插件的名称更新数据库管理器配置参数 local_gssplugin 。
- 将 authentication 数据库管理器配置参数设置为 GSSPLUGIN或 GSS_SERVER_ENCRYPT。