博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2 基本安全概念 - 身份验证 [转载]
阅读量:6175 次
发布时间:2019-06-21

本文共 3450 字,大约阅读时间需要 11 分钟。

hot3.png

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_ALLCLNTS TRUST_CLNTAUTH 不可信的客户机 可信的客户机 主机客户机
No Yes CLIENT CLIENT CLIENT CLIENT
No Yes SERVER CLIENT CLIENT CLIENT
No No CLIENT SERVER CLIENT CLIENT
No No SERVER SERVER CLIENT CLIENT
No DRDAONLY CLIENT SERVER SERVER CLIENT
No DRDAONLY SERVER SERVER SERVER CLIENT
Yes Yes CLIENT CLIENT CLIENT CLIENT
Yes Yes SERVER SERVER SERVER SERVER
Yes No CLIENT SERVER CLIENT CLIENT
Yes No SERVER SERVER SERVER SERVER
Yes DRDAONLY CLIENT SERVER SERVER CLIENT
Yes DRDAONLY SERVER SERVER SERVER SERVER

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

Kerberos 身份验证的条件:    1. 客户机和服务器必须属于同一个域(用 Windows 术语来说,是可信域)。    2. 必须设置适当的主体(Kerberos 中的用户 ID)。    3. 必须创建服务器的 keytab 文件,实例所有者必须能够读这个文件。    4. 所有机器必须有同步的时钟。 好象在WINDOWS域里,如果都是WINDOWS还是比较好实现的,但如果有LINUX或UNIX,还有得搞了。 文章地址:

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

你可能感兴趣的文章
iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
查看>>
Creating a Windows Image on OpenStack
查看>>
jquery图片自动缩放
查看>>
ie6 失真问题
查看>>
Regular Expression
查看>>
你到了第几层?图片式标题、按钮与隐藏文本
查看>>
大话重构连载14:我们是这样自动化测试的
查看>>
我的友情链接
查看>>
iis6 php安装 (一)
查看>>
关于,在Mysql中,外键是否会影响性能的问题???
查看>>
利用javascript设置图片等比例缩小
查看>>
dedeCMS如何给频道页添加缩略图
查看>>
CoreSeek快速安装
查看>>
Linux 网络性能调试工具Netstat
查看>>
我的友情链接
查看>>
报表下载SSH
查看>>
我的友情链接
查看>>
Raid磁盘阵列真的是100%的安全吗?raid有哪些常见的故障?
查看>>
Raid5两块硬盘离线解决方案 -阵列数据恢复案例
查看>>
IBM AIX存储层结构介绍 / 常用命令整理
查看>>