DB2定义了一个权限层次结构,用于将一组预先确定的管理权限授予用户账号组(group)。这些管理权限包括能够对数据库进行备份、更改配置参数、查看表数据等等。权限级别控制执行数据库管理器维护操作和管理数据库对象的能力。
DB2授权控制数据库安全策略的以下方面:
- 用户被授予的权限级别
- 允许用户运行的命令
- 允许用户读取或修改的数据
- 允许用户创建、修改和删除的数据库对象
DB2中共包括两类权限:实例级和数据库级权限。 -
实例级权限
- SYSADM 系统管理员
- SYSCTRL 系统控制
- SYSMAINT 系统维护
- SYSMON 系统监视
这些权限只能分配给组
-
数据库级权限
- DBADM
- SECADM
- LOAD
用户可以通过以下命令来判断自己拥有哪些权限和数据库级特权
复制代码
1
2db2 get authorizations ---9.7
复制代码
1
2[db2inst1@db22 adm]$ db2 "SELECT substr(AUTHORITY,1,30) as AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('DB2INST1', 'U') ) AS T ORDER BY AUTHORITY"
结果如图:
AUTHORITY | D_USER | D_GROUP | D_PUBLIC | ROLE_USER | ROLE_GROUP | ROLE_PUBLIC | D_ROLE |
---|---|---|---|---|---|---|---|
ACCESSCTRL | Y | N | N | N | N | N | * |
BINDADD (允许用户在数据库中创建新的包) | N | N | Y | N | N | N | * |
CONNECT (允许用户连接数据库) | N | N | Y | N | N | N | * |
CREATETAB (允许创建表) | N | N | Y | N | N | N | * |
CREATE_EXTERNAL_ROUTINE (允许用户注册外部例程-用C或java写的例程) | N | N | N | N | N | N | * |
CREATE_NOT_FENCED_ROUTINE | N | N | N | N | N | N | * |
CREATE_SECURE_OBJECT | N | N | N | N | N | N | * |
DATAACCESS | Y | N | N | N | N | N | * |
DBADM | Y | N | N | N | N | N | * |
EXPLAIN | N | N | N | N | N | N | * |
IMPLICIT_SCHEMA 允许用户在尙不存在的模式中创建对象(自动创建模式) | N | N | Y | N | N | N | * |
LOAD | N | N | N | N | N | N | * |
QUIESCE_CONNECT(允许用户连接处于quiesced状态的数据库) | N | N | N | N | N | N | * |
SECADM | Y | N | N | N | N | N | * |
SQLADM | N | N | N | N | N | N | * |
SYSADM | * | Y | * | * | * | * | * |
SYSCTRL | * | N | * | * | * | * | * |
SYSMAINT | * | N | * | * | * | * | * |
SYSMON | * | N | * | * | * | * | * |
WLMADM | N | N | N | N | N | N | * |
可以看到db2inst1用户所在的组是有SYSADM权限的
授予/撤销实例级权限
获得SYSADM权限
DB2中的SYSADM权限就像是unix上的root权限。SYSADM用户能够对其他用户授予或撤销特权或权限。只允许SYSADM 用户更新DBM CFG文件。SYSADM 权限由DBM CFG中的SYSADM GROUP参数控制。
复制代码
1
2[db2inst1@db22 ~]$ db2 get dbm cfg | grep -i sysadm SYSADM group name (SYSADM_GROUP) = DB2IADM1
获取SYSCTRL权限
SYSCTRL用户可以对实例中的任何数据库执行的命令示例如下所示:
- db2start/db2stop
- db2 create/drop databse
- db2 create/drop tablespace
- db2 backup/restore/rollforward database
- db2 runstats (针对任何表)
- db2 update db cfg for database dbname
拥有SYSADM权限的用户使用以下命令将SYSCTRL分配给一个组:
复制代码
1db2 update dbm cfg using SYSCTRL_GROUP group_name
授予/撤销数据库级权限
数据库级权限包括DBADM、CONNECT、CREATETAB 、SECADM和LOAD。
获得dbadm权限
复制代码
1db2 grant dbadm on database to group db2groupq
获得LOAD权限
复制代码
1
2db2 grant load on database to user xinzhuang db2 grant insert on table sales to user xinzha
最后
以上就是顺心高跟鞋最近收集整理的关于DB2(三)——权限(authentication)的全部内容,更多相关DB2(三)——权限(authentication)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复