DB2(三)——权限(authentication)

简介:

  DB2定义了一个权限层次结构,用于将一组预先确定的管理权限授予用户账号组(group)。这些管理权限包括能够对数据库进行备份、更改配置参数、查看表数据等等。权限级别控制执行数据库管理器维护操作和管理数据库对象的能力。
  DB2授权控制数据库安全策略的以下方面:

  • 用户被授予的权限级别
  • 允许用户运行的命令
  • 允许用户读取或修改的数据
  • 允许用户创建、修改和删除的数据库对象
      DB2中共包括两类权限:实例级和数据库级权限。
  • 实例级权限

    • SYSADM 系统管理员
    • SYSCTRL 系统控制
    • SYSMAINT 系统维护
    • SYSMON 系统监视
      这些权限只能分配给组
  • 数据库级权限

    • DBADM
    • SECADM
    • LOAD

用户可以通过以下命令来判断自己拥有哪些权限和数据库级特权

db2 get authorizations     ---9.7

[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参数控制。

[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分配给一个组:

db2 update dbm cfg using SYSCTRL_GROUP group_name

授予/撤销数据库级权限

  数据库级权限包括DBADM、CONNECT、CREATETAB 、SECADM和LOAD。

获得dbadm权限

db2 grant dbadm on database to group db2groupq

获得LOAD权限

db2 grant load on database to user xinzhuang
db2 grant insert on table sales to user xinzha
相关文章
|
4月前
|
Ubuntu 关系型数据库 MySQL
Mysql Access denied for user ‘root‘@ ‘*.*.*.*‘ (using password: YES)异常处理
Mysql Access denied for user ‘root‘@ ‘*.*.*.*‘ (using password: YES)异常处理
55 0
Mysql Access denied for user ‘root‘@ ‘*.*.*.*‘ (using password: YES)异常处理
|
数据库
解决sprinboot项目连接数据库出现Access denied for user ‘‘@‘localhost‘ (using password: NO)
解决sprinboot项目连接数据库出现Access denied for user ‘‘@‘localhost‘ (using password: NO)
解决sprinboot项目连接数据库出现Access denied for user ‘‘@‘localhost‘ (using password: NO)
|
SQL 安全 数据库
The server principal "sa" is not able to access the database "xxxx" under the current security context
在SQL Server服务器上一个作业执行时,遇到下面错误信息: Message: Executed as user: dbo. The server principal "sa" is not able to access the database "xxxx" under the current security context. [SQLSTATE 08004] (Error 916). The step failed.   作业本身执行的存储过程非常简单,就是将数据库A中的历史数据处理过后,归档到A_History库中,结果就遇到这么一个问题。
2854 0
|
关系型数据库 MySQL 数据库
mysql_异常_01_Access denied for user 'root'@'192.168.1.13' (using password: YES)
一、异常现象 使用navicat premuim 连接 虚拟机mysql数据库时 ,抛出如下错误: Access denied for user 'root'@'192.168.1.13' (using password: YES)     二、异常原因  这是因为虽然用户名和密码正确,但是却没有在其他ip地址上访问的权限。
3688 0