如何综合掌握 DB2 和 Informix
2007-10-01 22:15:20 来源:WEB开发网安全特性
DB2 和 IDS 安全模型都由两个主要组件组成:身份验证和授权。
图 13. DB2 安全模型
- ·在Windows中使用Cygwin环境下的gcc编
·Informix入门之---SQL函数整理
·Informix-SPL(过程)语法详解
·我找到的INFORMIX 培训教材
·Informix SQL语句详解(1)
·Informix 高级培训教材(三)
·INFORMIX ONLINE 7.x for sco 安装步
·Informix7.30的安装及管理
·使用 Informix 系统目录(1)
·INFORMIX SQL技巧
DB2 身份验证
身份验证就是使用一种安全机制验证所提供的用户 ID 和密码的过程。用户和组的身份验证是使用一种 DB2 之外的设施进行管理的,例如操作系统、域控制器或者 Kerberos 安全系统,这种身份验证方式与其他数据库管理系统(DBMS)如 Oracle(大型网站数据库平台) 和 sql server(WINDOWS平台上强大的数据库平台) 不同,在其他数据库管理系统中,数据库本身以及诸如操作系统等外部设施对用户帐户进行定义和身份验证。在连接时如果没有提供用户凭证,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 身份验证类型。 |
IDS 安全机制
图 14. IDS 安全模型
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 使用五种不同级别的权限来控制用户对实例或数据库执行管理和维护操作。这五种级别是:
- System Administrator (SYSADM) 权限
- System Control (SYSCTRL) 权限
- System Control (SYSCTRL) 权限
- System Maintenance (SYSMAINT) 权限
- Database Administrator (DBADM) 权限
- Load (LOAD) 权限
特权是用来将在特定数据库资源上执行某种操作的权利授予单个用户或组用户。DB2 中,有两种不同的特权类型:数据库特权和对象特权。
数据库特权应用在整个数据库中,对于大多数用户来说,其行为如同在第二个安全检查点通过验证的标识,在提供对数据的访问之前必须要清除该检查点。和应用于整体数据库的数据库特权不同,对象特权只应用在数据库内特定的对象。这些对象包括模式、表空间、表、索引、视图、包、例程、序列、服务器和昵称。
IDS 不同于 DB2,它包含预定义的权限。在数据库级别上授予这些权限。如果一个用户被授予这些权限中的一种,该用户将获得一组特权。下面列出了这些权限。
- 连接特权
- 资源特权
- DBA 特权
DBA 特权将授予所以资源特权以及维护数据库系统所需的所有其他特权。这和 DB2 中的 DBADM 权限有些相像。这是 IDS 中数据库访问的最高特权级别。
为易于理解,下面列出了其中一些 DB2 和 IDS 特权。想要了解更详尽的列表,请参考 DB2 Information Center。
表 5. 特权
DB2 | IDS | Remarks |
---|---|---|
CONNECT | 连接特权 | 允许用户访问数据库。要对数据库进行任何访问,用户至少要有一个连接特权。 |
CREATETAB CREATE_EXTERNAL_ROUTINE CREATEIN | 资源特权 | 授权所有连接特权,并且允许用户创建新表、索引和过程。 |
CREATETAB LBAC | 表级和列级特权 | 可以访问特定表并且数据库管理员可以控制表内的列。表的创建者或具有资源特权或 DBA 权限的用户可以创建表。数据库管理员可以授权所有不同表级的特权,如选择、插入、删除、更新、索引、更改、引用等。 |
除此之外,IDS 还允许用户创建特定于数据库的用户组,称之为 角色。当创建角色后,将用户分配到该角色并进一步授予角色权限。在 IDS 中,在数据库级别定义角色。
更多精彩
赞助商链接