[DB2 学习记录]4. DB2 基本安全概念-授权

 这部分比较简单,一目了然。

5种不同的 权限级别:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD
但我看了,cfg中,还有SYSMON, 可能后面会提到 (获取对数据库系统监视器数据的访问权)
又或者看的版本没更新。

DB2 授权控制数据库安全计划的以下方面:
    * 用户被授予的权限级别
    * 允许用户运行的命令
    * 允许用户读取和/或修改的数据
    * 允许用户创建、修改和/或删除的数据库对象

在 DB2 可用的 5 种权限中,
SYSADM、SYSCTRL 和 SYSMAINT 是实例级权限;这些权限只能分配给组;通过 DBM CFG 文件分配权限。
针对特定数据库的 DBADM 和 LOAD 权限可以分配给用户或用户组,使用 GRANT 命令显式地分配这些权限。

用户可以通过发出以下命令来判断自己拥有哪些权限和数据库级特权:
db2 get authorizations
 Administrative Authorizations for Current User
 Direct SYSADM authority                    = NO
 Direct SYSCTRL authority                   = NO
 Direct SYSMAINT authority                  = NO
 Direct DBADM authority                       = NO
 Direct CREATETAB authority             = YES
 Direct BINDADD authority                   = YES
 Direct CONNECT authority                 = YES
 Direct CREATE_NOT_FENC authority           = YES
 Direct IMPLICIT_SCHEMA authority                = NO
 Direct LOAD authority                                        = NO
 Direct QUIESCE_CONNECT authority           = NO
 Direct CREATE_EXTERNAL_ROUTINE authority   = YES
 Direct SYSMON authority                                   = NO

 Indirect SYSADM authority                   = NO
 Indirect SYSCTRL authority                 = NO
 Indirect SYSMAINT authority                = NO
 Indirect DBADM authority                     = NO
 Indirect CREATETAB authority            = YES
 Indirect BINDADD authority                 = YES
 Indirect CONNECT authority               = YES
 Indirect CREATE_NOT_FENC authority     = NO
 Indirect IMPLICIT_SCHEMA authority         = YES
 Indirect LOAD authority                                  = NO
 Indirect QUIESCE_CONNECT authority     = NO
 Indirect CREATE_EXTERNAL_ROUTINE authority = NO
 Indirect SYSMON authority                            = NO

SYSADM 权限
 只允许 SYSADM 用户更新 DBM CFG 文件。
 SYSADM 权限由DBM CFG文件中的 SYSADM_GROUP 参数控制。
 在 Windows 上,在创建实例时,这个参数设置为 Administrator (但如果db2 get dbm cfg,看起来是空的)。
 在 UNIX 上,它设置为创建这个实例的用户的主组。
  db2 update dbm cfg using SYSADM_GROUP db2grp1
  这一修改直到实例停止并重新启动之后才会生效
 
SYSCTRL 权限
 与 SYSADM 用户不同,他们不能访问数据库中的任何数据,除非他们被授予了访问数据所需的特权。
    * db2start/db2stop
    * db2 create/drop database
    * db2 create/drop tablespace
    * db2 backup/restore/rollforward database
    * db2 runstats(针对任何表)
    * db2 update db cfg for database dbname

拥有 SYSADM 权限的用户可以使用以下命令将 SYSCTRL 分配给一个组:
db2 update dbm cfg using SYSCTRL_GROUP group_name
                
SYSMAINT 权限
    拥有 SYSCTRL 权限的用户可以发出的命令的子集,不能创建或删除数据库或表空间
db2 update dbm cfg using SYSMAINT_GROUP group name

DBADM 权限
DBADM 权限是一个数据库级权限,而不是实例级权限。可以通过下面的方式,得到。
    * db2 create database test
      这个命令将数据库 test 上的 DBADM 权限隐式地授予发出此命令的用户。
     
    * db2 connect to sample
      db2 grant dbadm on database to user tst1
      这个命令只能由 SYSADM 用户发出;
      向用户 tst1 授予的 DBADM 权限。
      在授予 DBADM 权限之前,必须连接到数据库。 (难道没有直接给的?)

    * db2 grant dbadm on database to group db2grp1
      这个命令将 DBADM 权限授予 db2grp1 组中的每个用户。同样,只有 SYSADM 用户能够发出这个命令。

LOAD 权限
拥有 LOAD 权限的用户可以运行以下命令:
    * db2 quiesce tablespaces for table
    * db2 list tablespaces
    * db2 runstats(任何表)
    * db2 load insert(必须有表上的插入特权)
    * db2 load restart/terminate after load insert(必须有表上的插入特权)
    * db2 load replace(必须有表上的插入和删除特权)
    * db2 load restart/terminate after load replace(必须有表上的插入和删除特权)
只有拥有 SYSADM 或 DBADM 权限的用户能够对用户或用户组授予或撤消 LOAD 权限。
    db2 grant load on database to user tst1
    db2 grant insert on table sales to user tst1
    db2 grant load on database to group grp1

   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值