9、安全性控制范文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上一章:数据库的并发性控制
第九章安全性控制
提纲:
1、DB2支持的认证类型
2、利用DB2存取控制机制实现数据库的安全性
3、利用用户组实现控制的继承性
4、系统中权限的划分
5、隐式权限和显式权限的区别
9.1、DB2服务器的认证类型
对实例或数据库进行存取首先要求认证用户。每个实例的认证类型确定如何以及在何处验证用户。认证类型在数据库管理程序配置文件中指定。它是在创建实例时进行的初始设置。每个实例都有一个认证类型,该类型控制对实例和该实例控制下的所有数据库的存取。
DB2提供了下列认证类型:
●SERVER:
指定使用服务器断操作系统安全性在服务器端进行认证。若在尝试连接期间指定了用户ID 和口令,则在服务器上将它们与有效的用户ID 和口令比较,以确定是否允许该用户存取这个实例。这是缺省的安全性机制。
服务器会检测一个连接是本地的还是远程的。对于本地连接,当认证是SERVER 时,由于系统在用户登录时已经检查过用户ID和口令,因此不需要在连接时提供用户ID 和口令,除非是用户需要以与登录身份不同的用户对数据库进行存取时才需要提供用户ID和口令。
如果用户需要连接到一个远程实例,并且该实例的认证类型为SERVER,则即使用户已经登录到本地机器上,该用户也必须提供用户ID 和口令。
●SERVER_ENCRYPT
指定使用加密的SERVER 认证方案。该认证类型与SERVER认证类型类似,只不过当客户机将用户ID 和口令传送给该服务器来认证的时候,口令将被加密。
若在客户机中指定SERVER_ENCRYPT,在服务器中指定SERVER,由于认证级别不匹配会返回一个错误。
●CLIENT
指定使用客户端操作系统安全性来进行认证。在客户机节点上,将在一个尝试连接期间指定的用户ID和口令与有效的用户ID 和口令的组合比较,以确定是否允许此用户ID存取这个实例。用户和口令都是在本地操作系统上定义。
值得注意的是,远程实例的认证类型为CLIENT类型,并不等于认证过程将在客户端进行,有另两个数据库管理器配置参数将确定最终的认证方式:trust_allclnts 和trust_clntauth。其中trust_allclnts决定信任来自何方的客户端,该参数如果被设定为YES,则DB2服务器会允许所有要求连接的客户端进行对它进行连接,而不需要提供用户ID和口令。如果trust_allclnts被设置为NO,则DB2服务器只允许可信赖的客户端对其进行连接。(可信赖客户端是具有可靠的、本地安全系统的客户机。比如Windows NT、UNIX等,而
Windows 3.1、Windows95/98等由于不具有严格的安全性被认为是不可信赖的客户端)。trust_clntauch决定认证在何处完成。如果该参数被设定为SERVER,即使对于可信赖的客户端,认证过程也将在服务器端完成。而如果trust_clntauch被设定为CLIENT,则当连接命令提供了口令时,认证过程将会在服务器端完成,而当连接命令没有提供口令时,认证过程将会在客户端完成。
●DCS
主要用于需要通过DB2 Connect对主机数据库进行存取的环境。当在数据库管理程序配置文件中指定认证类型为DCS时,并通过“分布式关系数据库体系结构”(DRDA) 的“应用服务器”(AS) 体系结构来存取主机数据库服务器的时候,认证将在主机服务器上进行,但只在APPC 层进行。如果没有使用DRDA体系结构对数据库服务器进行存取,则认证方式与SERVER类型相同。
●DCS_ENCRYPT
指定使用加密的DCS 认证方案。该认证类型与DCS认证类型类似,只不过当客户机将用户ID 和口令传送给服务器来认证的时候,口令将被加密。
若在客户机中指定DCS_ENCRYPT,在服务器中指定DCS,由于认证级别不匹配会返回一个错误。
9.2、访问控制—权限
9.2.1、DB2访问控制的层次结构
DB2中的访问控制层次如上图所示。可以对DB2的用户赋于不同级别的权力和各种特权。其中权力(Authorities)是对一组数据库对象进行存取的特权集,有特定的名称。而特权(Privileges)则是对特定对象访问的权利。
权力(Authorities)分为以下级别:
(1)、SYSADM—系统管理
该权限是一个实例中的最高权限。可以完成一个实例范围内任何管理工作。可
以通过实例配置变量中的SYSADM_GROUP参数来指定一个用户组拥有该权
限。如果该参数为空,在Windows NT环境下,创建该实例的用户拥有该权限;
在UNIX环境下,与实例同名的用户拥有该权限。
(2)、SYSCTRL—系统控制
该权限可以完成系统中的管理功能,但不能访问数据。但拥有该权限的用户可
以创建数据库,并管理自己创建的数据库中的数据。可以通过实例配置变量中
的SYSCTRL_GROUP参数来指定一个用户组拥有该权限(3)(3)、
SYSMAINT—系统维护
该权限只能完成系统中与维护有关的任务,但不能访问数据,而且拥有该权限的
用户不能创建数据库。可以通过实例配置变量中的SYSMAINT_GROUP参数来
指定一个用户组拥有该权限。
(4)、DBADM—数据库管理
该权限是数据库级的权限,可以完成数据库的管理工作。该权限可以通过SQL
语句授予。
四种级别的权力对比如下:
特权(Priveleges)可以分为以下几种类型:
(1)、拥有者特权(Control)
对于大多数数据库对象,对象的创建者自动被赋予Control特权,拥有该对象
的全部访问特权。
(2)、个体特权(Individual)