如何综合掌握 DB2 和 Informix

来源:IBM 作者: 2007-11-20 出处:pcdog.com

.net  access  db2  db2 存储过程  eclipse  
上一页 1 2 3 4 5 6 7 8 9 10 下一页 

安全特性

DB2 和 IDS 安全模型都由两个主要组件组成:身份验证和授权。


图 13. DB2 安全模型
如何综合掌握 DB2 和 Informix(图十六)

DB2 身份验证

身份验证就是使用一种安全机制验证所提供的用户 ID 和密码的过程。用户和组的身份验证是使用一种 DB2 之外的设施进行管理的,例如操作系统、域控制器或者 Kerberos 安全系统,这种身份验证方式与其他数据库管理系统(DBMS)如 OracleSQL Server 不同,在其他数据库管理系统中,数据库本身以及诸如操作系统等外部设施对用户帐户进行定义和身份验证。在连接时如果没有提供用户凭证,DB2 将使用用来登录到发出请求的工作站的用户 ID 和密码。

默认情况下,建立一个实例,它将使用用于所有实例级和连接级请求的一种身份验证类型。数据库管理器配置参数 AUTHENTICATION 对此做了指定。Version 9 中引入了数据库管理器参数 SRVCON_AUTH。该参数专门处理与数据库的连接。所以,举例来说,如果在 DBM CFG 中具有如下设置:

DB2 GET DBM CFGServer Connection Authentication (SRVCON_AUTH) = KERBEROSDatabase manager authentication (AUTHENTICATION) = SERVER_ENCRYPT

连接到该实例将使用 SERVER_ENCRYPT。然而,与数据库的连接将使用 KERBEROS 身份验证。如果没有为服务器正确地初始化 KERBEROS,但是提供了一个有效的用户 ID 和密码,那么将允许用户连接到实例,但是不允许连接到数据库。

下面的表总结了 DB2 中可以的身份验证类型。在一个客户机-网关-主机环境中,这些身份验证选项是在客户机和网关上设置的,而不是在主机上设置的。


表 3. DB2 中的身份验证类型
类型 描述
SERVER 在服务器上进行身份验证。
SERVER_ENCRYPT 在服务器上进行身份验证。密码在发送到服务器之前先在客户机上进行加密
CLIENT 在客户机上进行身份验证。
*KERBEROS Kerberos 安全软件执行身份验证。
*KRB_SERVER_ENCRYPT 如果客户机设置为 KERBEROS,则使用 Kerberos 安全软件执行身份验证。否则使用 SERVER_ENCRYPT 进行身份验证。
DATA_ENCRYPT 在服务器上进行身份验证。服务器接收加密过的用户 ID 和密码,并且对数据进行加密。除了还要对数据进行加密外,其操作和 SERVER_ENCRYPT 相同。
DATA_ENCRYPT_CMP 这种身份验证方式和 DATA_ENCRYPT 相同,唯一不同的是这种模式允许不支持 DATA_ENCRYPT 模式的较老用户使用 SERVER_ENCRYPT 身份验证进行连接。这种情况下数据没有被加密。如果客户机连接支持 DATA_ENCRYPT ,将强制加密数据,并且不会退回到 SERVER_ENCRYPT 认证。这种认证类型只在服务器的数据库管理器配置文件中是有效的,当在客户机或网关实例的 CATALOG DATABASE 命令中使用是无效的。
GSSPLUGIN 可以使用一个外部 GSS-API 插件对身份验证进行控制。
GSS_SERVER_ENCRYPT 可以使用一个外部 GSS-API 插件对身份验证进行控制。如果客户机不支持服务器的 GSS-API 插件中的一种,将使用 SERVER_ENCRYPT 身份验证类型。
*这些设置只有在 Windows 2000、AIX、SolarisLinux 操作系统下是有效的。

IDS 安全机制


图 14. IDS 安全模型
如何综合掌握 DB2 和 Informix(图十七)

IDS 认证

在 IDS 中,有 4 个用于身份验证的选项,如图 4 所示。下面对每一种选项进行了简要说明:
表 4. IDS 安全机制
方法 属性 说明
OS 用户 ID 不进行加密,使用 OS 密码查找 IDS 始终使用这种基本的身份验证。这种技术为每一个连接到 DBMS 的用户使用 OS 用户 ID 和密码。用户或应用程序提交用户 ID 和密码,DBMS 使用一个 OS 库函数验证密码。如果 OS 函数表明 OS 的用户 ID 和密码集中没有该用户 ID 和/或密码,那么将拒绝用户连接到 DBMS。
密码加密 使用 OS 用户 ID ,但是在传输过程对密码进行加密。 IDS 支持从应用程序向数据库服务器传输密码时对密码进行加密。要实现此目的,需要对客户机和服务器各自的 SQLHOSTS 文件或注册表以及 conscm.cfg 文件配置密码加密。
Pluggable Authentication Model (PAM) 用户提供的身份验证方法 使用 PAM 的身份验证使您能够编写自己的方法来对用户进行认证。可以从来自第三方的可用模块中选择 PAM。组成 PAM 的库文件通常驻留在 $INFORMIXDIR/lib 中,PAM 的配置文件位于 $INFORMIXDIR/etc 中。concsm.cfg 文件都对这些文件进行了引用。
Lightweight Directory Access Protocol (LDAP) 用户提供的对 LDAP 目录的访问 LDAP 使您能够在 LDAP 服务器上集中管理用户帐户。使用 LDAP 将不再需要在数据库服务器机器上创建用户帐户。

权限和特权

授权是这样一个过程:它为提供的用户 ID 确定关于特定数据库对象和操作的访问和权限信息。DB2 在内部存储和维护用户和组的授权信息。每次提交一个命令时,DB2 将执行授权检查以确保您具有正确的权限集来执行操作。

DB2 使用五种不同级别的权限来控制用户对实例或数据库执行管理和维护操作。这五种级别是:

特权是用来将在特定数据库资源上执行某种操作的权利授予单个用户或组用户。DB2 中,有两种不同的特权类型:数据库特权和对象特权。

数据库特权应用在整个数据库中,对于大多数用户来说,其行为如同在第二个安全检查点通过验证的标识,在提供对数据的访问之前必须要清除该检查点。和应用于整体数据库的数据库特权不同,对象特权只应用在数据库内特定的对象。这些对象包括模式、表空间、表、索引、视图、包、例程、序列、服务器和昵称。

IDS 不同于 DB2,它包含预定义的权限。在数据库级别上授予这些权限。如果一个用户被授予这些权限中的一种,该用户将获得一组特权。下面列出了这些权限。

DBA 特权将授予所以资源特权以及维护数据库系统所需的所有其他特权。这和 DB2 中的 DBADM 权限有些相像。这是 IDS 中数据库访问的最高特权级别。

为易于理解,下面列出了其中一些 DB2 和 IDS 特权。想要了解更详尽的列表,请参考 DB2 Information Center。
表 5. 特权

DB2 IDS Remarks
CONNECT 连接特权 允许用户访问数据库。要对数据库进行任何访问,用户至少要有一个连接特权。
CREATETAB
CREATE_EXTERNAL_ROUTINE
CREATEIN
资源特权 授权所有连接特权,并且允许用户创建新表、索引和过程。
CREATETAB
LBAC
表级和列级特权 可以访问特定表并且数据库管理员可以控制表内的列。表的创建者或具有资源特权或 DBA 权限的用户可以创建表。数据库管理员可以授权所有不同表级的特权,如选择、插入、删除、更新、索引、更改、引用等。

除此之外,IDS 还允许用户创建特定于数据库的用户组,称之为 角色。当创建角色后,将用户分配到该角色并进一步授予角色权限。在 IDS 中,在数据库级别定义角色。



上一页 1 2 3 4 5 6 7 8 9 10 下一页 
上一篇:IBM新版Informix数据库 提高备援能力
下一篇:Informix