DB2 UDB 安全模型主要包括两部分:身份验证(authentication) 和授权(authorization)。
图 1. DB2 UDB 安全模型身份验证身份验证就是使用安全机制验证所提供用户 ID 和口令的过程。用户和组身份验证由 DB2 UDB 外部的设施治理,比如操作系统、域控制器或者 Kerberos 安全系统。这和其他数据库治理系统(DBMS)是不同的,如 Oracle 和 SQL Server,后者既可以在数据库本身中定义和验证用户帐户,也可在外部设施(如操作系统)中完成。一旦用户 ID 和口令作为实例附件或数据库连接请求的一部分明确地提供给 DB2 UDB,DB2 UDB 就会尝试使用该外部安全设施验证用户 ID 和口令。假如请求中没有提供用户 ID 和口令,则 DB2 UDB 隐含使用登录到发出请求的工作站时所用的用户 ID 和口令。实际的验证位置由 DB2 UDB 实例参数 AUTHENTICATION 的值决定。有不同的身份验证方案,包括让用户在 DB2 UDB 服务器上验证(使用服务器的安全设施)、在客户机上验证(答应 “单点登录” 访问)、使用 Kerberos 安全设施验证,或者用户定义的通用安全服务(Generic Security Service,GSS)插件验证。其他身份验证选项包括当用户名和口令以及数据在客户机和服务器之间的网络上传递时进行加密。为 AUTHENTICATION 参数选择的值依靠于具体环境和本地安全策略。关于各种身份验证方案的完整描述,请参阅 DB2 UDB 文档。比如,图 1 中的连接语句供用户 bob 使用口令 bobpsw 连接到 finance 数据库。身份验证过程包括七个步骤:CONNECT 语句传递给 DB2 UDB 服务器。1