db2 用户权限
| DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看命令是db2 get authorizations。
DB2授权可分为实例级权限授权和数据库级别授权,实例级别权限必须由拥有SYSADM权限的用户通过update |
一、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
“直接” 权限意味着此权限是明确授予此用户的。“间接”权限意味着此用户属于具有此权限的组。
权限总结: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
db2 用户权限的更多相关文章
- db2用户权限
前言: DB2数据库权限分为实例级权限(SYSADM.SYSCTRL.SYSMAINT.SYSMON)和DB2数据库级权限(DBAMD.LOAD).DB2中用户所拥有的权限主要考虑三个方面:实 ...
- db2用户权限赋值
<!------------创建db2用户和组-------------------------------------------> [root@localhost ~]# userad ...
- day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置
配置文件:详细步骤, 1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文 ...
- python 获取mysql数据库列表以及用户权限
一.需求分析 需要统计出当前数据库的所有数据库名,以及每个用户的授权信息. 获取所有数据库 在mysql里面,使用命令: show databases 就可以获取所有数据库了 获取所有用户 执行命令: ...
- 12、创建mysql用户及赋予用户权限
1.通过help命令查看grant的用法: CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON db1.* ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- [Django]用户权限学习系列之权限管理界面实现
本系列前三章: http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令 http://www.cnblogs.com/CQ-LQJ ...
- [Django]用户权限学习系列之设计自有权限管理系统设计思路
若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...
- [Django]用户权限学习系列之User权限基本操作指令
针对Django 后台自带的用户管理系统,虽说感觉还可以,但是为了方便用户一些操作,特别设计自定义的用户权限管理系统. 在制作权限页面前,首先需要了解权限和用户配置权限的指令,上章讲到权限的添加,删除 ...
随机推荐
- Pahom on Water(最大流)
Pahom on Water Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 玩转Linux网络namespace-单机自环測试与策略路由
上周有厂商到公司測试,拿了一块据说非常猛的网络处理加速PCIe板卡,拎在手里沉甸甸的非常有分量,最让人意淫的是那4个万兆光口,于是我迫不及待的想要一览光口转发时那种看不见的震撼. 可是,仅凭4个光口怎 ...
- Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试
Tomcat是目前比较流行的开源且免费的Web应用服务器,在我的电脑上第一次安装Tomcat,再经过网上教程和自己的摸索后,将这个过程 重新记录下来,以便以后如果忘记了可以随时查看. 注意:首先要明确 ...
- Linux下Django开发学习(一)
一,环境配置: 环境:Ubuntu 14.04 LTS, Python 2.7, Django 1.8 安装Python : Ubuntu自带python2.7,不用安装 安装pip:sudo ap ...
- c++ ,protected 和 private修饰的构造函数
c++ protected 和 private修饰的构造函数: 1.在类的外部创建对象时,不能调用protected或private修饰的构造函数. 2.当子类中的构造函数调用父类的private构造 ...
- VS 2013--工程的创建,scanf报错,常用快捷键,行号设置
一.创建一个工程(这里是C++,其他的一样的) 在vs页面上点击 文件-->新建-->项目: 会出现如下界面,自己改名字和存贮位置就可以了 确定,然后点击下一步: 这样就建好了一个工程,然 ...
- Ubuntu服务器上SSH Server 的安装和设置
网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...
- Directshow 通过 put_Owner 指定显示窗口后,自动刷新问题
在Directshow中,我们可以对render指定显示窗口,在写程序的过程中, 发现通过put_Owner设置的显示窗口存在自动刷新问题,譬如窗口被遮挡然后再次露出时,被遮挡部分不能自动刷新,需要拖 ...
- windows下安装ruby和 rails的痛苦经历
准备安装ruby on rails,在网上搜了下,步骤都类似,但实际安装过程中却碰到很多问题.下面详细说下: 说明下,文章是按照我尝试的过程描述的.但最终是靠 运行 railsinstaller一键式 ...
- hdu 1395 2^x mod n = 1 (简单数论)
题目大意: 求出一个最小的x 使得 2的x次方对n取模为1 思路分析: 若要 a*b%p=1 要使得b存在 则 gcd (a,p)=1. 那么我们应用到这个题目上来. 当n为偶数 2^x 也是偶数, ...