从安装产品的那刻起,安全性注意事项对于 DB2® 管理员而言是十分重要的。
DB2 数据库安装程序将 1 至 99 的数字追加到缺省用户名后面,直到可以创建尚未存在的用户标识为止。例如,如果用户 db2inst1 和 db2inst2 已存在,那么 DB2 数据库安装程序会创建用户 db2inst3。如果使用大于 10 的数字,那么该名称的字符部分在缺省用户标识中将被截断。例如,如果用户标识 db2fenc9 已存在,DB2 数据库安装程序截断用户标识中的 c,然后追加 10(即 db2fen10)。在将数字值追加到缺省 DAS 用户(例如 dasusr24)时,不发生截断。
认证用户时,密码非常重要。如果在操作系统级别上未设置认证要求,且数据库正在使用该操作系统来认证用户,那么将允许用户连接。例如,在 Linux 和 UNIX 操作系统上,将未定义的密码视为 NULL。在此情况下,任何不具备已定义密码的用户将被视为具有 NULL 密码。从操作系统的角度来看,这是一种匹配,用户得到验证,并且能够连接到数据库。如果要使操作系统为您的数据库执行用户认证,请使用操作系统级别的密码。
处理 DB2 时分区数据库环境(在 Linux 和 UNIX 操作系统环境中),缺省情况下,DB2 数据库管理器使用 rsh 实用程序(在 HP-UX 上为 remsh)来对远程节点运行一些命令。rsh 实用程序通过网络以明文的方式传送密码,这样,如果 DB2 服务器不是在安全的网络中,那么这种方式可能会导致安全性漏洞。可以使用 DB2RSHCMD 注册表变量将远程 shell 程序设置为更安全的其他方法以避免这此漏洞。更安全的其他方法的一个示例就是 ssh。有关远程 shell 配置的限制,请参阅 DB2RSHCMD 注册表变量文档。
通过更新数据库管理器配置参数 sysadm_group,管理员可以控制由哪个用户组拥有 SYSADM 特权。您必须遵循以下准则来完成 DB2 数据库安装和后续实例及数据库创建的安全性要求。
任何定义为系统管理组的组(通过更新 sysadm_group)都必须存在。此组的名称应该能够让人轻松地识别出是为实例所有者创建的组。属于此组的用户标识和组对各自的实例均具有系统管理员权限。
管理员应该考虑创建可轻松识别为与特定实例相关联的实例所有者用户标识。作为其中一个组成员,此用户标识应该具有以上创建的 SYSADM 组的名称。另一项建议是只将此实例所有者用户标识用作实例所有者组的成员,而且不在任何其他组中使用该标识。这应该控制可以修改该实例的用户标识和组的增加。