DB2 基本安全概念 - 身份验证 [转载]

DB2 中有三种主要的安全机制,可以帮助 DBA 实现数据库安全计划:

身份验证(authentication)、授权(authorization) 和特权(privilege)。


5 种不同的权限级别:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD

DB2 9 中新增的一个概念是基于标签的访问控制(LBAC),允许控制谁有权访问单独的行和/或列。

安装SAMPLE DB
db2cmd
db2sample
  Creating database "SAMPLE"...
  Connecting to database "SAMPLE"...
  Creating tables and data in schema "MYNAME"...
  'db2sampl' processing complete.

attach 命令用来连接 DB2 实例,
connect 命令用来连接 DB2 实例中的数据库。

db2 attach to db2
   Instance Attachment Information
 Instance server        = DB2/NT 9.5.0
 Authorization ID       = MYNAME
 Local instance alias   = DB2
 
db2 connect to sample user test1 using "123"
   Database Connection Information
 Database server        = DB2/NT 9.5.0
 SQL authorization ID   = TEST1
 Local database alias   = SAMPLE
 
db2 connect to sample user test1 using "123" new "456" confirm "456"   --修改密码
   Database Connection Information
 Database server        = DB2/NT 9.5.0
 SQL authorization ID   = TEST1
 Local database alias   = SAMPLE

关于密码,搞了半天,通常DB2是和OS Account绑定的, 就是说不同应用连接DB2的话,要一堆OS帐号。
这点同ORACLE,SQL SERVER都不太一样。不然要用Kerberos 身份验证。反正是个麻烦事。

DB2 身份验证类型
db2 get dbm cfg
 Server Connection Authentication          (SRVCON_AUTH) = NOT_SPECIFIED
 Database manager authentication        (AUTHENTICATION) = SERVER
主要是这两个参数,影响类型,具体看下面的:

类型描述
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、Solaris 和 Linux® 操作系统有效。

db2 update dbm cfg using authentication server_encrypt   ---更新验证方式,需要restart DB

DB20000I  The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
SQL1362W  One or more of the parameters submitted for immediate modification
were not changed dynamically. Client changes will not be effective until the
next time the application is started or the TERMINATE command has been issued.
Server changes will not be effective until the next DB2START command.

 

   网关上设置身份验证

db2 catalog database myhostdb at node nd1 authentication SERVER
db2 terminate

客户机上设置身份验证
db2 catalog database sample at node nd1 authentication SERVER


处理不可信的客户机

下表总结了如果服务器的身份验证类型设置为 CLIENT,那么在每种类型的客户机向服务器发出连接命令时将在哪里进行身份验证。

是否提供了 ID/密码?TRUST_ALLCLNTSTRUST_CLNTAUTH不可信的客户机可信的客户机主机客户机
NoYesCLIENTCLIENTCLIENTCLIENT
NoYesSERVERCLIENTCLIENTCLIENT
NoNoCLIENTSERVERCLIENTCLIENT
NoNoSERVERSERVERCLIENTCLIENT
NoDRDAONLYCLIENTSERVERSERVERCLIENT
NoDRDAONLYSERVERSERVERSERVERCLIENT
YesYesCLIENTCLIENTCLIENTCLIENT
YesYesSERVERSERVERSERVERSERVER
YesNoCLIENTSERVERCLIENTCLIENT
YesNoSERVERSERVERSERVERSERVER
YesDRDAONLYCLIENTSERVERSERVERCLIENT
YesDRDAONLYSERVERSERVERSERVERSERVER

DRDAONLY 意味着只信任主机客户机,而不管使用 DRDA 进行连接的 DB2 Version 8 客户机。

Kerberos 身份验证的条件:
  1. 客户机和服务器必须属于同一个域(用 Windows 术语来说,是可信域)。
  2. 必须设置适当的主体(Kerberos 中的用户 ID)。
  3. 必须创建服务器的 keytab 文件,实例所有者必须能够读这个文件。
  4. 所有机器必须有同步的时钟。

好象在WINDOWS域里,如果都是WINDOWS还是比较好实现的,但如果有LINUX或UNIX,还有得搞了。


文章地址:http://blog.csdn.net/petergepeter/article/details/2191873



转载于:https://my.oschina.net/goopand/blog/343705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值