Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|Comet程序开发
您现在的位置: 天极网 > 开发频道 > DB2数据库安全的12条军规
全文
群乐:DB2

DB2数据库安全的12条军规

2007-11-27 10:41 作者: Wasserman 出处: 论坛整理 责任编辑:>方舟
  不授予不必要的特权

  开发一个应用程序时,开发人员常常很早就开始考虑安全性问题。例如,开发人员通常会用一个超级用户账户(DBADM 或 SYSADM)来开发和测试他们的应用程序,以免在运行代码时不断碰到安全错误消息。通过使用 Control Center,很容易为一个用户授予所有数据库许可和权限,如 图 1 所示。

  图 1. 通过 Control Center 授予许可

  通常,完成了应用程序的开发和测试阶段后,在开发过程中为解决安全错误消息而授予的许可仍然保留在那里,而实际上它们已经没有存在的必要了。

  作为一项最佳实践,应仔细检查在安装和配置应用程序的过程中授予每个用户的特权。确保所有被授出的许可和特权都是确实有必要的。

  对于不熟悉 DB2 安全模型的开发人员来说,他们往往因为贪图简单而通过 Control Center(见 图 1)为自己授予所有可用的特权,以避免安全错误消息。您应该确保所有被授出的许可和权限都是确实有必要的。

  使用加密的 AUTHENTICATION 模式

  身份验证是指使用一种安全机制对用户 ID 和密码进行验证的过程。用户和组的身份验证是在 DB2 外部的一个设施中,例如操作系统、域控制器或 Kerberos 安全系统中进行管理的。实际的身份验证位置由实例参数 AUTHENTICATION 的值来决定。有很多不同的身份验证模式,包括在 DB2 服务器上(使用服务器的安全设施)、在客户机上(允许 “单点” 访问)、在一个 Kerberos 安全设施上或者通过一个用户定义的 Generic Security Service(GSS)插件对用户进行身份验证。其他身份验证选项还包括当用户名和密码以及数据通过网络在客户机与服务器之间传输的时候,对它们进行加密。表 3 总结了各种加密的身份验证选项。

  表 3. 加密的 AUTHENTICATION 模式总结

AUTHENTICATION 模式 描述
SERVER_ENCRYPT
  • 规定在服务器上定义的安全设施上进行身份验证。如果在连接尝试期间指定了一个用户 ID 和密码,那么该用户 ID 和密码将与服务器上定义的有效用户 ID 和密码组合相比较,以确定是否允许该用户访问实例或数据库。
  • 在这种模式下,在网络上传输用户 ID 和密码时,它们将被加密。
KRB_SERVER_ENCRYPT
  • 规定服务器接受 KERBEROS 认证或加密的 SERVER 身份验证模式。
DATA_ENCRYPT
  • 规定服务器接受加密的 SERVER 身份验证模式和对用户数据的加密。
  • 使用这种身份验证类型时,以下用户数据也将被加密:
    • SQL 和 XQuery* 语句
    • SQL 程序变量数据
    • 完成对 SQL 或 XQuery* 语句的处理后,来自服务器的包括对数据的描述的输出数据。
    • 一个查询的部分或全部结果集数据。
    • Large object(LOB)数据流
    • SQLDA 描述
DATA_ENCRYPT_CMP
  • 规定服务器接受 SERVER 身份验证模式和对用户数据的加密。
  • 这种身份验证类型可以与不支持 DATA_ENCRYPT 身份验证类型的下级产品相兼容。这些产品可以使用 SERVER_ENCRYPT 身份验证类型,而不必加密用户数据。支持 DATA_ENCRYPT 身份验证类型的产品则必须使用它。
GSS_SERVER_ENCRYPT
  • 规定服务器接受基于 GSS API 插件的身份验证或加密的服务器身份验证模式。

  * 注意:从 DB2 9 开始,XQuery 是官方支持的查询语言。

  作为一项最佳实践,应该使用加密的身份验证模式。

  应该为您的环境选择什么样的身份验证模式,这是由数据的敏感级别来决定的。如果所有数据都是敏感的,那么应该选择 DATA_ENCRYPT 身份验证模式,这种身份验证模式会对客户机和服务器之间传输的很多数据进行加密。如果只有一小部分数据是敏感的,那么可以选择使用 SERVER_ENCRYPT 模式,这样可以保证密码得到加密,而敏感数据则可以通过不同的机制来得到保护。

  要更新 AUTHENTICATION 实例参数的值(在这个例子中就是 DATA_ENCRYPT 的值),可以使用 清单 3 中显式的命令。

  清单 3. 更新 AUTHENTICATION 实例参数

  UPDATE DBM CFG USING AUTHENTICATION DATA_ENCRYPT

  db2stop

  db2start

  注意,AUTHENTICATION 参数是在实例级上设置的,这意味着在相同实例中创建的数据库将使用共同的身份验证模式。如果有两个数据库,每个数据库需要不同的身份验证模式,那么需要在不同的实例中创建这两个数据库。

共4页。 9 1 2 3 4 :
网友关注
最新上市
编辑推荐
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml