ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:25.67KB ,
资源ID:3949039      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3949039.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(db2权限管理系统文斌整理.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

db2权限管理系统文斌整理.docx

1、db2权限管理系统文斌整理db2 创建用户及授权1、创建系统用户dbuser/ehong隶属于db2users2、C:Program FilesIBMSQLLIBBINdb2 connect to AKZXTEST数据库连接信息数据库服务器 = DB2/NT 9.7.3SQL 授权标识 = ADMINIST.本地数据库别名 = AKZXTEST3、给用户授权授予连接权限C:Program FilesIBMSQLLIBBINdb2 grantconnecton database to user dbuserDB20000I SQL 命令成功完成。这里可以授予的数据库级特权有:CREATETAB:

2、 用户可以在数据库中创建表。 BINDADD: 用户可以使用 BIND 命令在数据库中创建包。 CONNECT: 用户可以连接数据库。 CREATE_NOT_FENCED: 用户可以创建 unfenced 用户定义函数(UDF)。 IMPLICIT_SCHEMA: 用户可以在数据库中隐式地创建模式,而不需要使用 CREATE SCHEMA 命令。 LOAD: 用户可以将数据装载进表中。 QUIESCE_CONNECT: 用户可以访问处于静默(quiesced)状态的数据库。 CREATE_EXTERNAL_ROUTINE: 用户可以创建供应用程序和数据库的其他用户使用的过程。secadm:安全

3、性管理员Dbadm:DBADM用户对一个数据库有几乎完全的控制能力。DBADM用户不能执行某些维护或管理任务4、测试连接C:Program FilesIBMSQLLIBBINdb2 connect to AKZXTEST user dbuser using ehong数据库连接信息数据库服务器 = DB2/NT 9.7.3SQL 授权标识 = DBUSER本地数据库别名 = AKZXTEST#db2数据库特权大体上分成两类:数据库级特权(针对数据库中的所有对象)和对象级特权(与特定的对象相关联)。1、DBADM用户对一个数据库有几乎完全的控制能力。DBADM用户不能执行某些维护或管理任务,比如

4、:*dropdatabase*drop/createtablespace*backup/restoredatabase*updatedbcfgfordatabasedbname但是,他们可以执行以下任务:*db2create/droptable*db2grant/revoke(任何特权)*db2runstats(任何表)DBADM用户还被自动地授予对数据库对象及其内容的所有特权。因为DBADM权限是一个数据库级权限,所以它可以被分配给用户和用户组。以下命令演示授予DBADM权限的不同方法。*db2createdatabasetest这个命令将数据库test上的DBADM权限隐式地授予发出此命令

5、的用户。*db2connecttosampledb2grantdbadmondatabasetousertst1这个命令只能由SYSADM用户发出;它向用户tst1授予示例数据库上的DBADM权限。注意,在授予DBADM权限之前,发出这个命令的用户必须连接到示例数据库。*db2grantdbadmondatabasetogroupdb2grp1这个命令将DBADM权限授予db2grp1组中的每个用户。同样,只有SYSADM用户能够发出这个命令。2、LOAD权限LOAD权限是一个数据库级权限,所以它可以被分配给用户和用户组。顾名思义,LOAD权限允许用户对表发出LOAD命令。当用大量数据填充表时

6、,LOAD命令通常用来替代插入或导入命令,它的速度更快。根据您希望执行的LOAD操作类型,仅仅拥有LOAD权限可能还不够。可能还需要表上的特定特权。拥有LOAD权限的用户可以运行以下命令:*db2quiescetablespacesfortable*db2listtablespaces*db2runstats(任何表)*db2loadinsert(必须有表上的插入特权)*db2loadrestart/terminateafterloadinsert(必须有表上的插入特权)*db2loadreplace(必须有表上的插入和删除特权)*db2loadrestart/terminateafterlo

7、adreplace(必须有表上的插入和删除特权)只有拥有SYSADM或DBADM权限的用户能够对用户或用户组授予或撤消LOAD权限。以下示例演示LOAD权限如何允许我们的用户使用LOAD命令将数据装载进sales表中。假设已经发出了命令db2connecttosample。*db2grantloadondatabasetousertst1db2grantinsertontablesalestousertst1有了LOAD权限和插入特权,tst1就可以对sales表发出LOADINSERT或LOADRESTART,或者在LOADINSERT之后发出TERMINATE。*db2grantloado

8、ndatabasetogroupgrp1db2grantdeleteontablesalestogroupgrp1db2grantinsertontablesalestogroupgrp1有了LOAD权限以及删除和插入特权,grp1的任何成员就可以对sales表发出LOADREPLACE或LOADRESTART,或者在LOADREPLACE之后发出TERMINATE。3.其他特权用户可以拥有的数据库级特权有:*CREATETAB:用户可以在数据库中创建表。*BINDADD:用户可以使用BIND命令在数据库中创建包。*CONNECT:用户可以连接数据库。*CREATE_NOT_FENCED:用户

9、可以创建unfenced用户定义函数(UDF)。*IMPLICIT_SCHEMA:用户可以在数据库中隐式地创建模式,而不需要使用CREATESCHEMA命令。*LOAD:用户可以将数据装载进表中。*QUIESCE_CONNECT:用户可以访问处于静默(quiesced)状态的数据库。*CREATE_EXTERNAL_ROUTINE:用户可以创建供应用程序和数据库的其他用户使用的过程。数据库对象包括表、视图、索引、模式和包。幸运的是,大多数对象级特权的意义无需解释。下表总结了这些特权。特权名称相关对象描述CONTROL表、视图、索引、包、别名、不同的类型、用户定义函数、序列提供对对象的全部权限。

10、拥有这种特权的用户还可以向其他用户授予或撤消对对象的特权。DELETE表、视图允许用户从对象中删除记录。INSERT表、视图允许用户通过INSERT或IMPORT命令将记录插入对象中。SELECT表、视图提供使用选择语句来查看对象内容的能力。UPDATE表、视图允许用户使用更新语句修改对象中的记录。ALTER表允许用户使用更改语句更改对象定义。INDEX表允许用户使用创建索引语句在对象上创建索引。REFERENCES表提供在对象上创建或删除外键约束的能力。BIND包允许用户重新绑定现有的包。EXECUTE包、过程、函数、方法允许用户执行包和例程。ALTERIN模式允许用户修改模式中的对象定义。

11、CREATEIN模式允许用户在模式中创建对象。DROPIN模式允许用户删除模式中的对象。关于对象级特权的信息存储在系统编目视图中。视图名称是syscat.tabauth、syscat.colauth、syscat.indexauth、syscat.schemaauth、syscat.routineauth和syscat.packageauth。显式特权可以使用GRANT和REVOKE命令显式地对用户或组授予或撤消特权。我们来看看如何在各种对象上使用这些命令。作为拥有Administrator权限的用户登录Windows,打开两个DB2命令窗口。在这两个窗口中,确保将db2instance变量设

12、置为DB2!在第一个窗口中发出以下命:db2connecttosample现在,在第二个窗口中发出以下命令:db2connecttosampleusertest1usingpassword请记住,第一个窗口中的命令是由一个拥有SYSADM权限的用户发出的。第二个窗口中的命令是由tst1发出的,这个用户对示例数据库没有特殊的权限或特权。注意,与示例数据库中的表相关联的模式名是发出db2sampl命令的用户的名称。在这些示例中,这个用户是GMILNE。现在,在第二个窗口中发出以下命令:db2select*fromgmilne.org应该会看到以下响应:SQL0551NTEST1doesnothav

13、etheprivilegetoperformoperationSELECTonobjectGMILNE.ORG.为了纠正这种状况,在第一个窗口中发出以下命令:db2grantselectontablegmilne.orgtousertest1现在,前面的命令就会成功!接下来,在第二个窗口中发出一个更复杂的命令:db2insertintogmilne.orgvalues(100,Tutorial,1,Eastern,Toronto)同样会看到错误消息:SQL0551NTEST1doesnothavetheprivilegetoperformoperationINSERTonobjectGMILN

14、E.ORG所以,在第一个窗口中输入以下命令:db2grantinsertontablegmilne.orgtogroupdb2grp1原来失败的INSERT命令现在应该会成功完成,因为test1是db2grp1组的成员。现在,在第二个窗口中输入以下命令:db2droptablegmilne.emp_photo同样会看到错误消息:SQL0551NTEST1doesnothavetheprivilegetoperformoperationDROPTABLEonobjectGMILNE.EMP_PHOTO.所以,我们要授予这个特权。在第一个窗口中输入以下命令:db2grantdropinonsche

15、magmilnetoallDROPTABLE命令现在应该会成功完成。既然已经完成了示例,就可以撤消刚才授予的特权。在第一个窗口中发出以下命令:db2revokeselectontablegmilne.orgfromusertest1db2revokeinsertontablegmilne.orgfromgroupdb2grp1db2revokedropinonschemagmilnefromall注意,从组中撤消特权不一定会从这个组的所有成员撤消它。例如,以下命令可以用来从db2grp1撤消对gmilne.org表的所有特权(CONTROL除外):db2revokeallontablegmil

16、ne.orgfromgroupdb2grp1但是,test1用户(他是db2grp1的成员)仍然拥有对这个表的选择特权,因为他或她是被直接授予这个特权的。隐式特权当发出某些命令时,DB2可能会自动地授予特权,而不需要像前面看到的那样发出显式的GRANT语句。下表总结了会导致数据库管理程序隐式地授予特权的一些命令。注意,当删除创建的对象时,这些特性会隐式地撤消。但是,当显式地撤消更高级的特权时,不会撤消它们。发出的命令授予的特权被授予特权的用户CREATETABLEmytablemytable上的CONTROL发出命令的用户CREATESCHEMAmyschemamyschema上的CREATE

17、IN、ALTERIN和DROPIN,以及将这些特权授予其他用户的能力发出命令的用户CREATEVIEWmyviewmyview上的CONTROL(只有在用户拥有myview定义中引用的所有表和视图上的CONTROL特权的情况下)发出命令的用户CREATEDATABASEmydbmydb的系统编目表上的SELECT,mydb上的IMPLICIT_SCHEMA*PUBLIC*当用户创建数据库时,隐式地授予这个用户这个数据库上的DBADM权限。获得DBADM权限就会隐式地授予CONNECT、CREATETAB、BINDADD、IMPLICIT_SCHEMA和CREATE_NOT_FENCED特权。即

18、使撤消了DBADM权限,这个用户仍然会保留这些特权。*PUBLIC是一个特殊的DB2组,其中包括特定数据库的所有用户。与前面讨论过的其他组不同,PUBLIC不必在操作系统级进行定义。在默认情况下,会向PUBLIC授予一些特权。例如,这个组自动接受数据库上的CONNECT特权和编目表上的SELECT特权。可以对PUBLIC组发出GRANT和REVOKE命令,比如:db2grantselectontablesysibm.systablestopublicdb2revokeselectontablesysibm.systablesfrompublic间接特权当数据库管理器执行包时,可以间接获得特权。

19、包中包含一个或多个SQL语句,这些语句已经转换为DB2用来在内部执行它们的格式。换句话说,包中包含可执行格式的多个SQL语句。如果包中的所有语句都是静态的,那么用户只需要有包上的EXECUTE特权,就能够成功地执行包中的语句。例如,假设db2package1执行以下静态的SQL语句:db2select*fromorgdb2insertintotestvalues(1,2,3)在这种情况下,拥有db2package1上的EXECUTE特权的用户会间接地获得org表上的SELECT特权和test表上的INSERT特权。# 关于 DB2 授权的研究 #DB2 中有三种主要的安全机制,可以帮助 DBA

20、 实现数据库安全计划:身份验证(authentication)、授权(authorization)和特权(privilege)。身份验证是用户在尝试访问 DB2 实例或数据库时遇到的第一种安全特性。DB2 身份验证与底层操作系统的安全特性紧密协作来检验用户 ID 和密码。DB2 还可以利用 Kerberos 这样的安全协议对用户进行身份验证。授权决定用户和/或用户组可以执行的操作以及他们可以访问的数据对象。用户执行高级数据库和实例管理操作的能力由指派给他们的权限决定。在 DB2 中有 5 种不同的权限级别:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD。特权的粒度比授

21、权要细,可以分配给用户和/或用户组。特权定义用户可以创建或删除的对象。它们还定义用户可以用来访问对象(比如表、视图、索引和包)的命令。DB2 9 中新增的一个概念是基于标签的访问控制(LBAC),它允许以更细的粒度控制谁有权访问单独的行和/或列。1.DB2身份验证DB2 使用身份验证类型决定在什么地方进行身份验证。例如,在客户机 - 服务器环境中,是客户机还是服务器检验用户的 ID 和密码?在客户机 - 网关 - 主机环境中,是客户机还是主机检验用户的 ID 和密码? 可以在DBM CFG中指定相应的验证类型:DB2 GET DBM CFGServer Connection Authentic

22、ation (SRVCON_AUTH) = KERBEROSDatabase manager authentication (AUTHENTICATION) = SERVER_ENCRYPT那么在连接实例时会使用 SERVER_ENCRYPT。但是在连接数据库时会使用 KERBEROS 身份验证。在客户机 - 网关 - 主机环境中,这些身份验证选项在客户机和网关上设置,而不是在主机上。类型描述SERVER身份验证在服务器上进行。SERVER_ENCRYPT身份验证在服务器上进行。密码在客户机上进行加密,然后再发送到服务器。CLIENT身份验证在客户机上进行.*KERBEROS由 Kerbero

23、s 安全软件执行身份验证。*KRB_SERVER_ENCRYPT如果客户机设置是 KERBEROS,那么由 Kerberos 安全软件执行身份验证。否则使用 SERVER_ENCRYPT。DATA_ENCRYPT身份验证在服务器上进行。服务器接受加密的用户 ID 和密码,并对数据进行加密。这个选项的操作方式与 SERVER_ENCRYPT 相同,但是数据也要加密。DATA_ENCRYPT_CMP身份验证方式与 DATA_ENCRYPT 相同,但是允许不支持 DATA_ENCRYPT 的老式客户机使用 SERVER_ENCRYPT 身份验证进行连接。在这种情况下,数据不进行加密。如果进行连接的客

24、户机支持 DATA_ENCRYPT,就会进行数据加密,而不能降级到 SERVER_ENCRYPT 身份验证。这个身份验证类型只在服务器的数据库管理程序配置文件中是有效的,而且在客户机或网关实例上使用 CATALOG DATABASE 时是无效的。GSSPLUGIN身份验证方式由一个外部 GSS-API 插件决定。GSS_SERVER_ENCRYPT身份验证方式由一个外部 GSS-API 插件决定。在客户机不支持服务器的 GSS-API 插件之一的情况下,使用 SERVER_ENCRYPT 身份验证。2.授权授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在 DB2 可用的 5 种

25、权限中,SYSADM、SYSCTRL 和 SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过 DBM CFG 文件分配这些权限。针对特定数据库的 DBADM 和 LOAD 权限可以分配给用户或用户组。可以使用 GRANT 命令显式地分配这些权限。获得SYSADM权限SYSADM 权限由 DBM CFG 文件中的 SYSADM_GROUP 参数控制。在 Windows 上,在创建实例时,这个参数设置为 Administrator(但是,如果发出命令 db2 get dbm cfg,它看起来是空的)。在 UNIX 上

26、,它设置为创建这个实例的用户的主组。因为只允许 SYSADM 用户更新 DBM CFG 文件,所以只有他们能够向其他组授予任何 SYS* 权限。以下示例演示如何向db2grp1组授予 SYSADM 权限:db2 update dbm cfg using SYSADM_GROUP db2grp1获得SYSCTRL权限拥有 SYSCTRL 权限的用户可以在实例中执行所有管理和维护命令。但是,与 SYSADM 用户不同,他们不能访问数据库中的任何数据,除非他们被授予了访问数据所需的特权。SYSCTRL 用户可以对实例中的任何数据库执行的命令示例如下:db2start/db2stopdb2 creat

27、e/drop databasedb2 create/drop tablespacedb2 backup/restore/rollforward databasedb2 runstats(针对任何表) db2 update db cfg for databasedbname拥有 SYSADM 权限的用户可以使用以下命令将 SYSCTRL 分配给一个组:db2 update dbm cfg using SYSCTRL_GROUP group name获得SYSMAINT权限拥有 SYSMAINT 权限的用户可以发出的命令是拥有 SYSCTRL 权限的用户可以发出的命令的子集。SYSMAINT 用户

28、只能执行与维护相关的任务,比如:db2start/db2stopdb2 backup/restore/rollforward databasedb2 runstats(针对任何表) db2 update db cfg for databasedbname注意,拥有 SYSMAINT 权限的用户不能创建或删除数据库或表空间。他们也不能访问数据库中的任何数据,除非他们被显式地授予访问数据所需的特权。如果您拥有 SYSADM 权限,那么可以使用以下命令将 SYSMAINT 权限分配给一个组:db2 update dbm cfg using SYSMAINT_GROUP group name获得DBA

29、DM权限DBADM 权限是一个数据库级权限,而不是实例级权限。DBADM 用户对一个数据库有几乎完全的控制能力。DBADM 用户不能执行某些维护或管理任务,比如:drop databasedrop/create tablespacebackup/restore databaseupdate db cfg for databasedb name但是,他们可以执行以下任务:db2 create/drop tabledb2 grant/revoke(任何特权) db2 runstats(任何表)DBADM 用户还被自动地授予对数据库对象及其内容的所有特权。因为 DBADM 权限是一个数据库级权限,所以它可以被分配给用户和用户组。以下命令演示授予

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1