经济学第六章-DB2存取控制课件_第1页
经济学第六章-DB2存取控制课件_第2页
经济学第六章-DB2存取控制课件_第3页
经济学第六章-DB2存取控制课件_第4页
经济学第六章-DB2存取控制课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章

DB2存取控制第六章

DB2存取控制1DB2存取控制安全策略DB2认证DB2权限DB2特权DB2存取控制安全策略2数据库安全性考虑允许谁访问实例和数据库在何处以及如何验证用户的密码授予用户的权限级别允许用户运行的命令允许用户对数据所做的操作允许用户对数据库对象所作的操作数据库安全性考虑允许谁访问实例和数据库3DB2安全机制认证(Authentication)核实用户身份,典型的手段是要求用户提供用户名和口令。这个过程由DB2之外的安全机制负责。这些安全设施通常包括:操作系统的安全机制,以及第三方的安全产品。权限(Authority)是一种高层次的用户权力,通常授予需要对数据库和实例进行管理和维护的用户。权限主要用于对实例内部对象的存取,控制用户是否能够执行某项管理任务。特权(Privilege)是针对数据库对象的用户权力,通常授予只需对数据库对象进行存取的用户,用来控制他们对数据库对象的存取。DB2安全机制认证(Authentication)4DB2认证简介DB2认证控制着数据库安全性计划的下列几个方面:允许谁访问实例和/或数据库在何处/如何验证用户的密码需要进行DB2认证过程的命令:ATTACH(连接实例)CONNECT(连接数据库)如果在使用Attach和Connect命令的时候,没有提供用户名和口令,系统将会使用用户在登录操作系统时所使用的用户名和口令进行认证,认证的过程是由DB2之外的安全设施来进行的。DB2认证简介DB2认证控制着数据库安全性计划的下列几个方面5DB2支持的认证类型

认证类型即如何进行认证以及在何处进行认证。DB2支持的认证类型包括:类型描述server在服务器上进行认证。server_encrypt在服务器上进行认证。在将口令(密码)发送给服务器之前,先在客户机上对口令(密码)进行加密。client在客户机机器上进行认证。kerberos认证由kerberos安全性软件执行。krb_server_encrypt如果客户机设置为kerberos,则认证由kerberos安全性软件执行。否则,就使用server_encrypt。DB2支持的认证类型认证类型即如何进行认证以及在何处6在服务器上设置认证认证类型可以设置在DB2服务器端和DB2客户端。如果要在数据库服务器上设置认证类型,可通过设置数据库管理器配置参数authentication实现。该参数为实例级参数,因此实例中所有数据库都会受到该参数设置的影响。db2updatadbmcfgusingauthenticationserver_encrypydb2stopdb2start在服务器上设置认证认证类型可以设置在D7在客户机上设置认证对于连接到非主机数据库的客户机,可通过catalogdatabase命令设置认证类型。客户机的认证设置必须匹配客户机所连接的数据库服务器的认证设置。db2catalogdatabasesampleatnodend1authenticationserver在客户机上设置认证对于连接到非主机数据8在客户机上设置认证当服务器将认证类型设置成Client的时候,希望由客户端代替服务器端进行认证。但最终认证类型是否在客户端进行还要由两个因素决定:一是客户端的受信任程度;第二是数据库管理器配置文件中的两个参数。TRUST_ALLCLNTSTRUST_CLNTAUTH在客户机上设置认证当服务器将认证类型设9客户机的信任程度根据客户机操作系统提供的安全机制,把客户机分成以下三类:不可信的客户机:运行在Windows98/ME操作系统上的客户机。主机客户机:运行在类似OS/390这样的主机操作系统上的客户机。可信的客户机:运行在WindowsNT,Windows2000,Unix等具备完备的安全机制的操作系统上的客户端。客户机的信任程度根据客户机操作系统提10TRUST_ALLCLNTS该参数确定是否信任所有客户端,指定是否所有的客户端都可以对用户进行验证。取值作用YES参数缺省值。迫使所有的客户端(包括不受信任的客户端)对用户进行验证。NO所有不受信任的客户端将在服务器端进行验证,在连接时必须提供用户名和口令。所有受信任的客户端将在客户端进行用户验证。DRDAONLY只有MVS、OS/390、VM、VSE和OS/400系统上的DB2客户端可以代表数据库服务器进行用户验证。TRUST_ALLCLNTS该参数确定是否信任所有客11TRUST_CLNTAUTH该参数用来设定当用户进行实例或数据库连接的时候,如果提供了用户名和口令,则认证过程会在什么地方发生。取值作用client验证过程将在客户端进行。如果连接时没有提供用户名和口令,系统将自动使用用户登录到客户端操作系统时提供的用户名和口令进行验证。server验证过程将在服务器端进行思考:如果要让所有的认证过程都在客户端完成,该如何设置相关参数?除了服务器端的认证类型要设置成client之外,还要将trust_allclnts参数设置为yes。trust_clntauth参数设置为client。TRUST_CLNTAUTH该参数用来设定当用户进行实例12DB2权限简介用户通过了认证,DB2内部的安全机制将会控制用户对数据库系统的存取,这种存取控制主要是通过为用户指定某些权限或者特权来决定的。DB2权限控制数据库安全性计划的以下几方面:授予用户的权限级别允许用户运行的命令允许用户读和修改的数据允许用户创建、修改和删除的数据库对象DB2权限简介用户通过了认证,DB2内部的安13[经济学]第六章_DB2存取控制课件14SYSADM权限SYSADM权限是DB2系统中最高级别的权限。对某个实例具备SYSADM权限的用户能够对该实例以及实例内的任何数据库执行任何DB2操作,还能够访问数据库内的数据,并能够授予或取消特权和权限。SYSADM用户是唯一允许更新DBM配置文件的用户。如果要赋予某个用户SYSADM权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSADM_GROUP的参数值为该用户组的名称。db2updatedbmcfgusingSYSADM_GROUPgrp111SYSADM权限SYSADM权限是DB15SYSCTRL权限SYSCTRL是比SYSADM低一级的实例级用户权限,SYSCTRL允许用户执行大多数的数据库管理和维护任务,但是缺省情况下,具有该权限的用户不能存取数据库对象,不过,SYSCTRL权限具有创建数据库的权力,对于自己创建的数据库中的数据库对象,SYSCTRL用户具有绝对的控制权。要赋予某个用户SYSCTRL权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSCTRL_GROUP的值为该用户组名称。SYSCTRL权限SYSCTRL是比SYSADM低一级的实例16SYSCTRL权限

SYSCTRL用户可以对实例内的任何数据库执行的命令有:DB2start/db2stopdb2create/dropdatabasedb2create/droptablespacedb2backup/restore/rollforwarddatabasedb2runstats(可以对任何表执行该命令)db2updatedbcfgfordatabasedbnameSYSCTRL权限SYSCTRL用户可以对实例内的任何数据17SYSMAINT权限SYSMAINT权限是比SYSCTRL低一级的实例级权限。SYSMAINT权限允许用户执行系统的维护工作,具有该权限的用户在缺省情况下不能创建数据库。要赋予某个用户SYSMAINT权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSMAINT_GROUP的值为该用户组名称。具有SYSMAINT权限的用户可以发出的命令是具有SYSCTRL权限的用户所允许发出的命令的子集。SYSMAINT权限SYSMAINT权限是比SYSCTRL18SYSMAINT用户只能执行与维护有关的任务,例如:db2start/db2stopdb2backup/restore/rollforwarddatabasedb2runstats(可以对任何表执行该命令)db2updatedbcfgfordatabasedbnameSYSMAINT权限SYSMAINT用户只能执行与维护有关的任务,例如:S19DBADM权限

DBADM权限是一种数据库级权限而不是实例级权限,是数据库级别的最高权限。DBADM权限对于数据库中的数据库对象具有绝对的控制权,还可以将数据库对象上的相应特权赋予其它用户。要赋予某个用户DBADM权限,必须由该数据库所在实例上具有SYSADM权限的用户通过grant命令来授予。DBADM用户不能执行下列任务:dropdatabasedrop/createtablespacebackup/restoredatabaseupdatedbcfgfordatabasedbnameDBADM权限DBADM权限是一种数据库级20LOAD权限

Load权限是一种比较特殊的数据库级别的权限。因为该权限只是专门针对Load操作这样一个任务而设定的。拥有该权限的用户可以在不具备SYSADM或者DBADM权限的情况下完成Load操作。如果想赋予某个用户Load权限,必须由具有SYSADM或者DBADM权限的用户通过grant命令来授予。db2grantloadondatabasetousertst1db2grantinsertontablesalestousertst1LOAD权限Load权限是一种比较特殊的数21具有LOAD权限的用户可以运行下列命令:db2quiescetablespacefortabledb2listtablespacedb2runstats(任何表)db2loadinsert(必须对表具有插入特权)db2loadrestart/terminateafterloadinsert(必须对表具有插入特权)db2loadreplace(必须对表具有插入和删除特权)db2loadrestart/terminateafterloadreplace(必须对表具有插入和删除特权)LOAD权限具有LOAD权限的用户可以运行下列命令:LOAD权限22[经济学]第六章_DB2存取控制课件23DB2特权特权是创建和存取数据库对象的能力。按功能点划分拥有者特权(control特权)个体特权隐式特权按范围划分数据库级别特权对象级别特权DB2特权特权是创建和存取数据库对象的能力。24拥有者特权又称为控制权,如果用户在某个数据库对象上拥有这种特权,该用户就可以对该对象拥有全面的控制,既可以存取该对象,也可以将该对象上的特权赋予其它用户。

通常情况下,数据库对象的创建者会自动拥有该对象的拥有者特权。DB2特权拥有者特权DB2特权25个体特权这类特权允许用户对数据库对象进行特定操作,比如一个用户拥有了某个表上的select特权,该用户就可以对该表进行select操作。隐式特权这种特权是指由于用户执行了某些操作或被授予了更高级别的权限和特权的时候,DB2自动授予该用户的特权。DB2特权个体特权DB2特权26数据库特权数据库BINDADDIMPLICIT_SHCEMACREATE_NOT_FENCEDCONNECTCREATETABLOADQUIESCE_CONNECTCREATE_EXTERNAL_ROUTINE数据库特权数据库BINDADDIMPLICIT_SHCEMA27[经济学]第六章_DB2存取控制课件28数据库特权描述CREATETAB用户可以在数据库内创建表BINDADD用户可以使用BIND命令在数据库内创建程序包CONNECT用户可以连接到数据库CREATE_NOT_FENCED用户可以创建非隔离的、由用户定义的函数(UDF)IMPLICIT_SCHEMA用户可以不使用CREATESCHEMA命令而在数据库内隐式地创建模式LOAD用户可以将数据装入到表中QUIESCE_CONNECT用户可以在数据库处于停顿状态时访问数据库CREATE_EXTERNAL_ROUTINE用户可以创建一个外部例程(UDF、存储过程等),供应用程序和数据库的其他用户使用数据库特权数据库特权描述CREATETA29数据库对象特权CONTROL

(视图)ALLDELETEINSERTSELECTUPDATEALLALTERDELETEINDEXINSERTREFERENCESSELECTUPDATECONTROL

(表)CONTROL

(索引)ALTERINCREATEINDROPIN

(模式)CONTROL

(别名)CONTROL

(表空间)CONTROL

(程序包)BINDEXECUTEUSEALLALTERINDEXREFERENCES数据库对象数据库对象特权CONTROLALLALLCONTROLCON30数据库对象特权特权名称相关对象描述CONTROL表、视图、索引、包、别名、单值类型、用户定义的函数和序列提供对象的所有权限。在数据库对象创建时自动分配给对象的创建者。具有此特权的用户还将该对象上的特权授予其他用户或者取消这些特权。DELETE表和视图允许用户从对象删除记录。INSERT表和视图允许用户借助INSERT或IMPORT命令将记录插入对象。SELECT表和视图提供使用select语句查看对象内容的能力UPDATE表和视图允许用户使用update语句修改对象内的记录。ALTER表允许用户使用alter语句修改对象定义。数据库对象特权特权名称相关对象描述CONTR31数据库对象特权特权名称相关对象描述INDEX表允许用户使用createindex语句在对象上创建索引。REFERENCES表提供在对象上创建或删除外键约束的能力。BIND包允许用户重新联编现有的包。EXECUTE包、过程、函数和方法允许用户执行包和例程。ALTERIN模式允许用户修改模式内的对象定义。CREATEIN模式允许用户在模式内创建对象。DROPIN模式允许用户删除模式内的对象。数据库对象特权特权名称相关对象描述INDEX32控制对数据库对象的存取控制授权有3种方式:通过使用GRANT和REVOKE语句进行显式授权通过创建和撤消对象进行隐式授权与程序包有关的间接特权控制对数据库对象的存取控制授权有3种方式:33显式授权—授予特权可以通过GRANT语句进行显式授权。GRANTprivilegeONobject-typeobject-nameTO[{USER|GROUP|PUBLIC}]authorization-name[WITHGRANTOPTION]WITHGRANTOPTION使获得授权的用户能够将获得的特权授予其他用户。显式授权—授予特权可以通过GRANT语句进行显34示例将employee表的select特权授予用户heron,并且heron能将获得的特权授予其它用户。grantselectonemployeetouserheronwithgrantoption将employee表的select特权授予组herongrantselectonemployeetogroupheron示例将employee表的select特权授予用户heron35要授予对大多数数据库对象的特权,用户必须对该对象具有SYSADM权限、DBADM权限或CONTROL特权,或者用户必须持有使用WITHGRANTOPTION授予的特权。

要将CONTROL特权授予其它用户,该用户必须具有SYSADM或DBADM权限;要授予DBADM特权,用户必须具有SYSADM权限。显式授权—授予特权要授予对大多数数据库对象的特权,用户必36显式授权—撤销特权REVOKE语句允许特许用户撤销先前授予其他用户的特权。

REVOKEprivilegeONobject-typeobject-nameFROM[{USER|GROUP|PUBLIC}]authorization-name要撤销赋予数据库对象的特权,必须对该对象具有DBADM权限、SYSADM权限或CONTROL特权。要撤销CONTROL特权,必须具有SYSADM或DBADM权限;要撤销DBADM权限,必须具有SYSADM权限。显式授权—撤销特权REVOKE语句允许特许用户37如果已经把一个特权授予有相同名称的一个用户和一个组,当撤销此特权时必须指定group或user关键字。从用户heron撤销多employee表的select特权revokeselectonemployeefromuserheron从组heron撤销多employee表的select特权revokeselectonemployeefromgroupheron示例如果已经把一个特权授予有相同名称的一个用户和一个组,38用户、用户组和PUBLICDB2用户一定是操作系统用户;PUBLIC是特殊的DB2用户组,代表所有DB2用户;在大多数情况下,一个用户拥有的特权等于授予该用户的特权、授予该用户所在用户组的特权以及授予PUBLIC的特权三者的并集。用户、用户组和PUBLICDB2用户一定是操作系统用户;39隐式特权隐式特权是在用户执行某些操作(通常是创建数据库和数据库对象以及被授予某些高级别权力)时,自动授予用户的特权。当所创建的对象被删除时,这些特权也会被隐式地取消。但在显式取消更高级别特权时,这些隐式特权却不会被隐式地取消。隐式特权隐式特权是在用户执行某些操作(通常是创建数据库和数据40隐式特权示例(一)创建数据库时,系统隐式授予的特权有:授予数据库的创建者BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUNTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特权授予PUBLIC组BINDADD、CREATETAB、CONNECT和IMPLICIT_SCHEMA特权授予PUBLIC组系统编目表和系统编目视图上的SELECT特权授予PUBLIC组USERSPACE1的USE特权......隐式特权示例(一)创建数据库时,系统隐式授予的特权有41隐式特权示例(二)SYSADM授予某用户DBADM权限的时候,系统隐式发生下列授权活动:同时授予该用户该数据库上的BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特权用户创建数据库对象时,系统隐式发生下列授权活动:同时授予对象创建者该对象上的CONTROL特权。用户创建视图时,系统隐式授予视图创建者的特权不会超出该创建者在基表上拥有的特权。隐式特权示例(二)SYSADM授予某用户DBADM权限的时候42间接特权间接特权与程序包有关。当用户执行一个涉及某些特权的程序包时,将自动获得执行程序包中包含的静态SQL语言所需的权限,不需要显式授权。例如:程序包包含对某个表的插入操作,如果用户具有程序包上的EXECUTE特权,则该用户不需要具有该表上的INSERT特权就可以完成插入操作。间接特权间接特权与程序包有关。当用户执43通过视图进行安全控制如果表中存在部分敏感数据,不能让特定用户查看,可以通过视图进行安全控制:db2createviewv1asselectempno,empname,phonefromemployeedb2revokeselectontableemployeefrommeldb2grantselectonviewv1tomel通过视图进行安全控制如果表中存在部分敏感数据,不能让特44基于标签的访问控制

DB29中新增的一个概念是基于标签的访问控制(LBAC)。LBAC为DBA提供了在表的行或列级限制读/写特权的能力。

在以前,进行这种限制的惟一方法是创建一个视图,授权用户使用这个视图,并撤消对基表的访问权。基于标签的访问控制

DB29中新增45应用程序相关特权要进行的工作需要的特权预编译数据库上的CONNECT特权绑定,在数据库中生成程序包数据库上的CONNECT和BINDADD特权执行包中每个静态SQL语句的特权修改已经存在的程序包数据库上的CONNECT和BIND特权执行包中每个静态SQL语句的特权执行一个程序包数据库上的CONNECT特权程序包上的EXECUTE特权删除一个程序包数据库上的CONNECT特权程序包上的CONTROL特权应用程序相关特权要进行的工作需要的特权预编译数据库上的CON46审计•DB2UDB审计(Audit)功能是DBA工具箱中一件重要的 安全性工具。它可以对一系列预定义的数据库事件进 行审计跟踪,并允许DBA维护审计跟踪。•审计发生在实例级,所以一旦启动审计功能,它就会审计那个实例中所有数据库的活动。•审计功能必须单独启动和停止•只有具有SYSADM权限的用户才能配置和使用审计功能。审计•DB2UDB审计(Audit)功能是DBA工具箱中47审计缓冲区Db2audit.logDb2audit.log审计配置服务器DB2实例数据库数据库审计缓冲区Db2audit.logDb2audit.log审48本章小结•本章介绍了DB2中三种主要的安全机制,这三种机制分别为身份验证(authentication)、授权(authorization)和特权(privilege)。•还详细介绍了使用命令撤消、授予权限和特权的方法。•此外还介绍了审计,审计是DBA工具箱中一件重要的安全性工具。本章小结•本章介绍了DB2中三种主要的安全机制,这三种机49第六章

DB2存取控制第六章

DB2存取控制50DB2存取控制安全策略DB2认证DB2权限DB2特权DB2存取控制安全策略51数据库安全性考虑允许谁访问实例和数据库在何处以及如何验证用户的密码授予用户的权限级别允许用户运行的命令允许用户对数据所做的操作允许用户对数据库对象所作的操作数据库安全性考虑允许谁访问实例和数据库52DB2安全机制认证(Authentication)核实用户身份,典型的手段是要求用户提供用户名和口令。这个过程由DB2之外的安全机制负责。这些安全设施通常包括:操作系统的安全机制,以及第三方的安全产品。权限(Authority)是一种高层次的用户权力,通常授予需要对数据库和实例进行管理和维护的用户。权限主要用于对实例内部对象的存取,控制用户是否能够执行某项管理任务。特权(Privilege)是针对数据库对象的用户权力,通常授予只需对数据库对象进行存取的用户,用来控制他们对数据库对象的存取。DB2安全机制认证(Authentication)53DB2认证简介DB2认证控制着数据库安全性计划的下列几个方面:允许谁访问实例和/或数据库在何处/如何验证用户的密码需要进行DB2认证过程的命令:ATTACH(连接实例)CONNECT(连接数据库)如果在使用Attach和Connect命令的时候,没有提供用户名和口令,系统将会使用用户在登录操作系统时所使用的用户名和口令进行认证,认证的过程是由DB2之外的安全设施来进行的。DB2认证简介DB2认证控制着数据库安全性计划的下列几个方面54DB2支持的认证类型

认证类型即如何进行认证以及在何处进行认证。DB2支持的认证类型包括:类型描述server在服务器上进行认证。server_encrypt在服务器上进行认证。在将口令(密码)发送给服务器之前,先在客户机上对口令(密码)进行加密。client在客户机机器上进行认证。kerberos认证由kerberos安全性软件执行。krb_server_encrypt如果客户机设置为kerberos,则认证由kerberos安全性软件执行。否则,就使用server_encrypt。DB2支持的认证类型认证类型即如何进行认证以及在何处55在服务器上设置认证认证类型可以设置在DB2服务器端和DB2客户端。如果要在数据库服务器上设置认证类型,可通过设置数据库管理器配置参数authentication实现。该参数为实例级参数,因此实例中所有数据库都会受到该参数设置的影响。db2updatadbmcfgusingauthenticationserver_encrypydb2stopdb2start在服务器上设置认证认证类型可以设置在D56在客户机上设置认证对于连接到非主机数据库的客户机,可通过catalogdatabase命令设置认证类型。客户机的认证设置必须匹配客户机所连接的数据库服务器的认证设置。db2catalogdatabasesampleatnodend1authenticationserver在客户机上设置认证对于连接到非主机数据57在客户机上设置认证当服务器将认证类型设置成Client的时候,希望由客户端代替服务器端进行认证。但最终认证类型是否在客户端进行还要由两个因素决定:一是客户端的受信任程度;第二是数据库管理器配置文件中的两个参数。TRUST_ALLCLNTSTRUST_CLNTAUTH在客户机上设置认证当服务器将认证类型设58客户机的信任程度根据客户机操作系统提供的安全机制,把客户机分成以下三类:不可信的客户机:运行在Windows98/ME操作系统上的客户机。主机客户机:运行在类似OS/390这样的主机操作系统上的客户机。可信的客户机:运行在WindowsNT,Windows2000,Unix等具备完备的安全机制的操作系统上的客户端。客户机的信任程度根据客户机操作系统提59TRUST_ALLCLNTS该参数确定是否信任所有客户端,指定是否所有的客户端都可以对用户进行验证。取值作用YES参数缺省值。迫使所有的客户端(包括不受信任的客户端)对用户进行验证。NO所有不受信任的客户端将在服务器端进行验证,在连接时必须提供用户名和口令。所有受信任的客户端将在客户端进行用户验证。DRDAONLY只有MVS、OS/390、VM、VSE和OS/400系统上的DB2客户端可以代表数据库服务器进行用户验证。TRUST_ALLCLNTS该参数确定是否信任所有客60TRUST_CLNTAUTH该参数用来设定当用户进行实例或数据库连接的时候,如果提供了用户名和口令,则认证过程会在什么地方发生。取值作用client验证过程将在客户端进行。如果连接时没有提供用户名和口令,系统将自动使用用户登录到客户端操作系统时提供的用户名和口令进行验证。server验证过程将在服务器端进行思考:如果要让所有的认证过程都在客户端完成,该如何设置相关参数?除了服务器端的认证类型要设置成client之外,还要将trust_allclnts参数设置为yes。trust_clntauth参数设置为client。TRUST_CLNTAUTH该参数用来设定当用户进行实例61DB2权限简介用户通过了认证,DB2内部的安全机制将会控制用户对数据库系统的存取,这种存取控制主要是通过为用户指定某些权限或者特权来决定的。DB2权限控制数据库安全性计划的以下几方面:授予用户的权限级别允许用户运行的命令允许用户读和修改的数据允许用户创建、修改和删除的数据库对象DB2权限简介用户通过了认证,DB2内部的安62[经济学]第六章_DB2存取控制课件63SYSADM权限SYSADM权限是DB2系统中最高级别的权限。对某个实例具备SYSADM权限的用户能够对该实例以及实例内的任何数据库执行任何DB2操作,还能够访问数据库内的数据,并能够授予或取消特权和权限。SYSADM用户是唯一允许更新DBM配置文件的用户。如果要赋予某个用户SYSADM权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSADM_GROUP的参数值为该用户组的名称。db2updatedbmcfgusingSYSADM_GROUPgrp111SYSADM权限SYSADM权限是DB64SYSCTRL权限SYSCTRL是比SYSADM低一级的实例级用户权限,SYSCTRL允许用户执行大多数的数据库管理和维护任务,但是缺省情况下,具有该权限的用户不能存取数据库对象,不过,SYSCTRL权限具有创建数据库的权力,对于自己创建的数据库中的数据库对象,SYSCTRL用户具有绝对的控制权。要赋予某个用户SYSCTRL权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSCTRL_GROUP的值为该用户组名称。SYSCTRL权限SYSCTRL是比SYSADM低一级的实例65SYSCTRL权限

SYSCTRL用户可以对实例内的任何数据库执行的命令有:DB2start/db2stopdb2create/dropdatabasedb2create/droptablespacedb2backup/restore/rollforwarddatabasedb2runstats(可以对任何表执行该命令)db2updatedbcfgfordatabasedbnameSYSCTRL权限SYSCTRL用户可以对实例内的任何数据66SYSMAINT权限SYSMAINT权限是比SYSCTRL低一级的实例级权限。SYSMAINT权限允许用户执行系统的维护工作,具有该权限的用户在缺省情况下不能创建数据库。要赋予某个用户SYSMAINT权限,必须将该用户添加到相应的用户组中,然后再更改数据库管理器配置参数SYSMAINT_GROUP的值为该用户组名称。具有SYSMAINT权限的用户可以发出的命令是具有SYSCTRL权限的用户所允许发出的命令的子集。SYSMAINT权限SYSMAINT权限是比SYSCTRL67SYSMAINT用户只能执行与维护有关的任务,例如:db2start/db2stopdb2backup/restore/rollforwarddatabasedb2runstats(可以对任何表执行该命令)db2updatedbcfgfordatabasedbnameSYSMAINT权限SYSMAINT用户只能执行与维护有关的任务,例如:S68DBADM权限

DBADM权限是一种数据库级权限而不是实例级权限,是数据库级别的最高权限。DBADM权限对于数据库中的数据库对象具有绝对的控制权,还可以将数据库对象上的相应特权赋予其它用户。要赋予某个用户DBADM权限,必须由该数据库所在实例上具有SYSADM权限的用户通过grant命令来授予。DBADM用户不能执行下列任务:dropdatabasedrop/createtablespacebackup/restoredatabaseupdatedbcfgfordatabasedbnameDBADM权限DBADM权限是一种数据库级69LOAD权限

Load权限是一种比较特殊的数据库级别的权限。因为该权限只是专门针对Load操作这样一个任务而设定的。拥有该权限的用户可以在不具备SYSADM或者DBADM权限的情况下完成Load操作。如果想赋予某个用户Load权限,必须由具有SYSADM或者DBADM权限的用户通过grant命令来授予。db2grantloadondatabasetousertst1db2grantinsertontablesalestousertst1LOAD权限Load权限是一种比较特殊的数70具有LOAD权限的用户可以运行下列命令:db2quiescetablespacefortabledb2listtablespacedb2runstats(任何表)db2loadinsert(必须对表具有插入特权)db2loadrestart/terminateafterloadinsert(必须对表具有插入特权)db2loadreplace(必须对表具有插入和删除特权)db2loadrestart/terminateafterloadreplace(必须对表具有插入和删除特权)LOAD权限具有LOAD权限的用户可以运行下列命令:LOAD权限71[经济学]第六章_DB2存取控制课件72DB2特权特权是创建和存取数据库对象的能力。按功能点划分拥有者特权(control特权)个体特权隐式特权按范围划分数据库级别特权对象级别特权DB2特权特权是创建和存取数据库对象的能力。73拥有者特权又称为控制权,如果用户在某个数据库对象上拥有这种特权,该用户就可以对该对象拥有全面的控制,既可以存取该对象,也可以将该对象上的特权赋予其它用户。

通常情况下,数据库对象的创建者会自动拥有该对象的拥有者特权。DB2特权拥有者特权DB2特权74个体特权这类特权允许用户对数据库对象进行特定操作,比如一个用户拥有了某个表上的select特权,该用户就可以对该表进行select操作。隐式特权这种特权是指由于用户执行了某些操作或被授予了更高级别的权限和特权的时候,DB2自动授予该用户的特权。DB2特权个体特权DB2特权75数据库特权数据库BINDADDIMPLICIT_SHCEMACREATE_NOT_FENCEDCONNECTCREATETABLOADQUIESCE_CONNECTCREATE_EXTERNAL_ROUTINE数据库特权数据库BINDADDIMPLICIT_SHCEMA76[经济学]第六章_DB2存取控制课件77数据库特权描述CREATETAB用户可以在数据库内创建表BINDADD用户可以使用BIND命令在数据库内创建程序包CONNECT用户可以连接到数据库CREATE_NOT_FENCED用户可以创建非隔离的、由用户定义的函数(UDF)IMPLICIT_SCHEMA用户可以不使用CREATESCHEMA命令而在数据库内隐式地创建模式LOAD用户可以将数据装入到表中QUIESCE_CONNECT用户可以在数据库处于停顿状态时访问数据库CREATE_EXTERNAL_ROUTINE用户可以创建一个外部例程(UDF、存储过程等),供应用程序和数据库的其他用户使用数据库特权数据库特权描述CREATETA78数据库对象特权CONTROL

(视图)ALLDELETEINSERTSELECTUPDATEALLALTERDELETEINDEXINSERTREFERENCESSELECTUPDATECONTROL

(表)CONTROL

(索引)ALTERINCREATEINDROPIN

(模式)CONTROL

(别名)CONTROL

(表空间)CONTROL

(程序包)BINDEXECUTEUSEALLALTERINDEXREFERENCES数据库对象数据库对象特权CONTROLALLALLCONTROLCON79数据库对象特权特权名称相关对象描述CONTROL表、视图、索引、包、别名、单值类型、用户定义的函数和序列提供对象的所有权限。在数据库对象创建时自动分配给对象的创建者。具有此特权的用户还将该对象上的特权授予其他用户或者取消这些特权。DELETE表和视图允许用户从对象删除记录。INSERT表和视图允许用户借助INSERT或IMPORT命令将记录插入对象。SELECT表和视图提供使用select语句查看对象内容的能力UPDATE表和视图允许用户使用update语句修改对象内的记录。ALTER表允许用户使用alter语句修改对象定义。数据库对象特权特权名称相关对象描述CONTR80数据库对象特权特权名称相关对象描述INDEX表允许用户使用createindex语句在对象上创建索引。REFERENCES表提供在对象上创建或删除外键约束的能力。BIND包允许用户重新联编现有的包。EXECUTE包、过程、函数和方法允许用户执行包和例程。ALTERIN模式允许用户修改模式内的对象定义。CREATEIN模式允许用户在模式内创建对象。DROPIN模式允许用户删除模式内的对象。数据库对象特权特权名称相关对象描述INDEX81控制对数据库对象的存取控制授权有3种方式:通过使用GRANT和REVOKE语句进行显式授权通过创建和撤消对象进行隐式授权与程序包有关的间接特权控制对数据库对象的存取控制授权有3种方式:82显式授权—授予特权可以通过GRANT语句进行显式授权。GRANTprivilegeONobject-typeobject-nameTO[{USER|GROUP|PUBLIC}]authorization-name[WITHGRANTOPTION]WITHGRANTOPTION使获得授权的用户能够将获得的特权授予其他用户。显式授权—授予特权可以通过GRANT语句进行显83示例将employee表的select特权授予用户heron,并且heron能将获得的特权授予其它用户。grantselectonemployeetouserheronwithgrantoption将employee表的select特权授予组herongrantselectonemployeetogroupheron示例将employee表的select特权授予用户heron84要授予对大多数数据库对象的特权,用户必须对该对象具有SYSADM权限、DBADM权限或CONTROL特权,或者用户必须持有使用WITHGRANTOPTION授予的特权。

要将CONTROL特权授予其它用户,该用户必须具有SYSADM或DBADM权限;要授予DBADM特权,用户必须具有SYSADM权限。显式授权—授予特权要授予对大多数数据库对象的特权,用户必85显式授权—撤销特权REVOKE语句允许特许用户撤销先前授予其他用户的特权。

REVOKEprivilegeONobject-typeobject-nameFROM[{USER|GROUP|PUBLIC}]authorization-name要撤销赋予数据库对象的特权,必须对该对象具有DBADM权限、SYSADM权限或CONTROL特权。要撤销CONTROL特权,必须具有SYSADM或DBADM权限;要撤销DBADM权限,必须具有SYSADM权限。显式授权—撤销特权REVOKE语句允许特许用户86如果已经把一个特权授予有相同名称的一个用户和一个组,当撤销此特权时必须指定group或user关键字。从用户heron撤销多employee表的select特权revokeselectonemployeefromuserheron从组heron撤销多employee表的select特权revokeselectonemployeefromgroupheron示例如果已经把一个特权授予有相同名称的一个用户和一个组,87用户、用户组和PUBLICDB2用户一定是操作系统用户;PUBLIC是特殊的DB2用户组,代表所有DB2用户;在大多数情况下,一个用户拥有的特权等于授予该用户的特权、授予该用户所在用户组的特权以及授予PUBLIC的特权三者的并集。用户、用户组和PUBLICDB2用户一定是操作系统用户;88隐式特权隐式特权是在用户执行某些操作(通常是创建数据库和数据库对象以及被授予某些高级别权力)时,自动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论