设为首页 收藏本站
查看: 1067|回复: 0

[经验分享] db2用户权限

[复制链接]

尚未签到

发表于 2016-11-18 01:39:13 | 显示全部楼层 |阅读模式
  前言:
    DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看命令是db2 get authorizations。   
   DB2授权可分为实例级权限授权和数据库级别授权,实例级别权限必须由拥有SYSADM权限的用户通过update cfg来授予用户组,数据库对象级别权限由DBAMD权限用户通过grant命令显示的授予用户或用户组。
  一、DB2权限简介
  DB2数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。
实例级别权限(只能在用户组级别上进行分配):

  SYSADM ----系统管理权限(UNIX系统中,SYSADM用户组默认地设置为实例拥有者所在的主用户组,因此,该组中的任何用户都拥有SYSADM权限)
  SYSCTL---- 系统控制权限
  SYSMAINT---- 系统维护权限
  数据库级别:
  dbadm---- 数据库管理权限(不能执行诸如删除数据库、创建和删除表空间、备份或者恢复数据库等等维护性和管理任务)
  load---- 对表进行load操作的权限
  1、 DB2数据库权限:
  CONNECT-允许用户连接数据库
  BINDADD-允许用户在数据库中创建新的包
  CREATETAB-允许用户在数据库中创建新的表
  CREATE_NOT_FENCED-允许用户注册定义为 NOT FENCED 的用户定义函数(UDF)或存储过程
  IMPLICITSCHEMA -允许用户在尚不存在的模式中创建对象(它自动地创建模式)*
  QUIESCE_CONNECT-允许用户连接处于 quiesced 状态的数据库
  CREATE_EXTERNAL_ROUTINE-允许用户注册外部例程(用 C 和 Java 等外部语言编写的例程)
  2、表空间特权:
  USE -允许用户在指定的表空间中创建表
  3、模式特权:
  CREATEIN-允许用户在模式中创建对象
  ALTERIN-允许用户在模式中修改对象
  DROPIN-允许用户从模式中删除对象
  4、表/视图特权:
  CONTROL-授予用户在表和视图上的所有特权,以及将这些特权(除了 CONTROL)授予别人
  ALTER -允许用户在表中添加列、在表和它的列上添加或修改注释、添加主键或惟一约束以及创建或删除表检查约束
  DELETE-允许用户从表或视图中删除行
  INDEX -允许用户在表上创建索引
  INSERT-允许用户在表或视图中插入数据
  REFERENCES-允许用户创建和删除外键,这需要指定关系中的父表
  SELECT-允许用户从表或视图中检索行、在表上创建视图以及运行EXPORT 实用程序
  UPDATE-允许用户修改表、视图或者表或视图中某些列中的数据;用户可以只在特定列上具有这种特权
  5、索引特权:
  CONTROL-允许用户删除索引
  6、包特权:
  CONTROL-允许用户重新绑定、删除或执行包,以及将这些特权(除了 CONTROL)授予别人
  BIND -允许用户重新绑定现有的包
  EXECUTE-允许用户执行包
  7、例程特权:
  EXECUTE允许用户调用例程,从例程创建函数(只应用于函数),以及在任何 DDL 语句(比如 CREATE VIEW、CREATE TRIGGER 或定义约束时)中引用例程
  9、 序列特权:
  USAGE -允许用户对序列使用 NEXTVAL 和PREVVAL 表达式
  ALTER -允许用户使用 ALTER SEQUENCE 语句修改序列属性
  特权的信息存储在七个系统编目视图中:
  *SYSCAT.DBAUTH - 数据库特权
  *SYSCAT.COLAUTH - 表和视图列特权
  *SYSCAT.INDEXAUTH - 索引特权
  *SYSCAT.PACKAGEAUTH - 包特权
  *SYSCAT.SCHEMAAUTH - 模式特权
  *SYSCAT.TABAUTH - 表和视图特权
  *SYSCAT.TBSPACEAUTH - 表空间特权
  查看当前连接用户权限:db2get authorizations
DSC0000.png

  “直接” 权限意味着此权限是明确授予此用户的。“间接”权限意味着此用户属于具有此权限的组。
权限总结:DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库对象级别,查看方法是db2get authorizations,具体表的授权信息存放在syscat.tabauth中。

  二、授权操作
  DB2数据库授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在DB2可用的5 种权限中,SYSADM、SYSCTRL和 SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过 DBM CFG 文件分配这些权限。
  1、获得 SYSADM
  具有 SYSADM 权限的用户可以发出作用于 DB2 实例、实例内的任何数据库以及这些数据库内的任何对象的任何 DB2 命令。他们也能够访问数据库内的数据,授予或撤消特权和权限。SYSADM 用户是唯一被允许更新数据库管理器配置(Database Manager Configuration(DBM CFG))文件的用户。
  SYSADM 权限在 DBM CFG 中通过 SYSADM_GROUP 参数控制。当创建实例时,在 Windows 上这个参数被设置为 Administrator(尽管当您发出命令 db2 get dbm cfg 时显示为空)。在 UNIX 上,该参数被设置为创建实例的用户的主组。由于 SYSADM 用户是唯一被允许更新 DBMCFG 的用户,所以,他们也是唯一能够将任何 SYS* 权限授予其它组的用户。
  以下示例演示如何向 db2grp1 组授予 SYSADM 权限:
  db2 update dbm cfg usingSYSADM_GROUP db2grp1
  2、 获得 SYSCTRL
  具有 SYSCTRL 权限的用户可以执行实例内的所有管理和维护命令。然而,与 SYSADM 用户不同,他们不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。SYSCTRL 用户可以对实例内的任何数据库执行
  拥有 SYSADM 权限的用户可以使用以下命令将 SYSCTRL 分配给一个组:
  db2 update dbm cfg usingSYSCTRL_GROUP group name
  3、 获得 SYSMAINT
  具有 SYSMAINT 权限的用户可以发出的命令是 SYSCTRL 权限被允许的命令的子集, 就是被看作与“维护”有关的一些任务。
  请注意,具有 SYSMAINT 的用户不能创建或删除数据库或表空间(tablespace)。他们也不能访问数据库内的任何数据,除非他们被授予了这样做所需要的特权。
  拥有 SYSADM 权限的用户可以使用以下命令将 SYSMAINT 分配给一个组:
  db2 update dbm cfg usingSYSMAINT_GROUP group name。
  4、Grant
  DB2数据库授权是通过GRANT命令实现的,DB2数据库授权后,用户才可以对DB2进行相应的操作。针对特定数据库的DBADM 和LOAD 权限可以分配给用户或用户组。可以使用GRANT命令显式地分配这些权限。
  语法:
>>-GRANT--authorization-specification--------------------------->

       .-,----------------------.                          

       V                        |                          

>--TO----+-authorization-name-+-+--+-------------------+-------><</em>

  +-ROLE--role-name----+    '-WITH GRANT OPTION-'   
  '-PUBLIC-------------'  
  简单示例(需要先连接数据库):
  --授权数据库管理权限给用户
  db2grant dbadm on database to user db2admin   
  --授权数据库管理权限给用户组
  db2 grant dbadm on database to group db2grp1
  --授权查询:
  db2grant select on table tableName  to user db2admin
  --全部授权
  DB2 GRANTALL ON TABLE OWK."FAVMENU" TO USER sckdev

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301688-1-1.html 上篇帖子: db2归档日志与循环日志 下篇帖子: 【db2】 db2数据库还原,备份
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表