全站资讯检索:
 
您现在的位置: 猫头鹰病毒资讯网 >> 系统安全 >> 系统安全 >> 文章正文
数据库安全之DB2 UDB 安全性插件概述
作者:lvvl    文章来源:赛迪网    点击数:    更新时间:2007-5-17

安全性插件是动态可装载库,当 DB2 UDB 进行身份验证或者从组成员中查找某个用户的时候,便调用这些库。在 8.2 版之前,这些操作是由 DB2 UDB 之外的设施管理的,例如操作系统、域管理器或 Kerberos 安全性系统。图 1 提供的场景说明了在 8.2 版之前 DB2 UDB 安全性的工作原理。


 

图 1. 安全性场景

  图 1 说明了 4 个安全性场景:

  1. 客户机系统通过服务器系统连接到数据库时的安全性考虑。

    在图 1 左侧,一个用户在 DB2 客户机系统的命令行处理程序(CLP)窗口中发出了语句 connect to mydb user raul using raulpsw,以连接到位于 DB2 数据库服务器 Aries 上的数据库 mydb。DB2 客户机与服务器通信,协商采用何种身份验证方法。为简单起见,我们假设客户机使用服务器返回的身份验证方法。在图中,AUTHENTICATION 被设置为 SERVER。这意味着,服务器(I)上的操作系统将通过检查提供的用户 ID 和密码是否与存储在操作系统安全性数据库中的值匹配,来进行身份验证。一旦用户通过身份验证,DB2 将从操作系统获得组成员信息。从此以后,DB2 不再在以后的检查中使用用户 ID 或密码;相反,DB2 将使用授权 ID(authID)。通常,authID 是用户 ID 的大写版本。
  2. 连接到数据库之后执行 SQL 语句时的安全性考虑。

    图 1 的左下部分展示了一条 SELECT 语句,该语句是在以 authID RAUL 连接到数据库 mydb 的情况下发出的。在这个例子中,内部的 DB2 安全性设施审核 DB2 编目表,以确认 authID RAUL 被授予对表 KEVIN.TABLE1 执行 SELECT 操作的权限,以此来执行授权(authorization) 检查。如果 authID RAUL 和 PUBLIC 没有被授予这种权限,DB2 将检查该用户是否为几个特殊的组(例如 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON)的成员。对于这些组中的每一个组,都有数据库管理器配置(dbm cfg)参数,可以将这些参数设置为一个操作系统组的值。在连接时,DB2 从操作系统中获取用户的组信息,并缓存在内存中。然后,DB2 审核这个缓存的数据(II),以检查 authID RAUL 是否为这些组中某个组的成员。例如,如果 authID 是 SYSADM 组的成员,那么 SELECT 可以继续,否则将返回一条错误消息(SQLCODE -551)。
  3. 在客户机实施安全性时的安全性考虑。

    在图 1 中,如果 AUTHENTICATION 被设置为 CLIENT,那么客户机上的操作系统将实施身份验证(III)。对于 SELECT 语句的授权检查将如前面所说的一样进行:DB2 从数据库的 DB2 编目表中检验 authID RAUL 是否有对 KEVIN.TABLE1 表的 SELECT 权限。如果 authID RAUL 和 PUBLIC 没有该权限,将进行组成员检查。在连接时,DB2 从客户机获得组成员信息,并缓存在服务器上。
  4. 发出实例级命令时的安全性考虑。

    在图 1 中的服务器上,DB2 实例所有者 db2inst1 发出命令 db2stop。DB2 检查当前登录进来的用户是否属于 SYSADM_GROUP、SYSCTRL_GROUP 或 SYSMAINT_GROUP 中定义的组。(IV)如果用户 ID 属于以上任何一个组,那么 db2stop 命令将得以执行。否则,将返回一条错误消息。取决于实例级操作,用户可能必须属于 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON 中的一个组。

在以上每个场景中,都调用了操作系统来进行安全性检查。而从 8.2 版开始,以上每种情况都可以使用安全性插件。因而,不必总是调用操作系统,在场景 1 中可以调用服务器和组插件,在场景 2 中可以调用组插件,在场景 3 和场景 4 中可以调用客户机和组插件。

  这个例子介绍了三种类型的安全性插件:

  • 服务器端身份验证安全性插件(即服务器身份验证插件)
  • 客户端身份验证安全性插件(即客户机身份验证插件)
  • 组成员查找安全性插件(即组插件)

  服务器身份验证插件在数据库服务器上执行身份验证。它还用于检查一个 authID 是否为插件所知。例如,考虑 SQL 语句 grant select on table user1.t1 to FOO,DB2 不知道 FOO 是用户还是组。在这种情况下,DB2 询问所有服务器端插件和组成员插件,以检查 FOO 是用户还是组,或者两者都是,或者无法确定,从而可以对该 SQL 语句作出响应。

  客户机身份验证插件在客户机上执行身份验证。在执行实例级命令(例如 db2startdb2stopdb2trcupdate dbm cfg 等)时,它还用于执行实例级本地授权。因此,常常可以看到在一个数据库服务器上同时指定了客户机身份验证插件和服务器身份验证插件。

  组插件在客户机和数据库服务器上执行组成员查找。它还用于检查一个 authID 是否为插件所知。

  每个安全性插件由一组 API 组成,需要实现这些 API。DB2 提供安全性插件基础设施和一些缺省的安全性插件。定制的安全性插件的实现则有待您来决定。

文章录入:菜猫    责任编辑:菜猫 
 热点文章
跑跑卡丁车和瑞星帐号保…
安全基础知识系列之防范…
开机时弹出对话框C:\PRO…
网管限制上网用户权限的…
木马病毒查找与清除实战
“杀软克星”病毒使电脑…
利用 Windows 命令行保护…
制作一个百毒不侵的系统
六个步骤即可防范ARP地址…
如何清除局域网中的ARP病…
最新文章
 
相关文章
数据库安全之手把手教你给DB2打上补丁
相关评论
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
::发表评论::
姓 名:* (必填项)
E-mail: QQ:
评 分: 1分 2分 3分 4分 5分
评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 游客发表评论须经管理员审核后才能发表。
  • 评论内容只代表个人观点,与本网站立场无关。
 
设为首页 | 收藏本站 | 关于我们 | 联系我们 | 刊登广告 | 版权声明 | 友情链接 | 网站地图
猫头鹰反病毒资讯网所有信息来自互联网及网友提供,如侵犯了你的权益,请来信告知,我们将立即删除!
Copyright © 2007-2008 MoToYi.com All rights reserved
本站为你提供病毒木马的防治方案,专杀工具和防护软件的下载,系统及网络的安全技巧,手机病毒发展趋势.