DB2学习笔记chensy(6)

2019-03-09 16:09

深入浅出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、包特权:

第21页

深入浅出DB2

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

第22页

深入浅出DB2

“直接” 权限意味着此权限是明确授予此用户的。“间接”权限意味着此用户属于具有此权限的组。

权限总结:DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库对象级别,查看方法是db2get authorizations,具体表的授权信息存放在syscat.tabauth中。

二、授权操作

DB2数据库授权由特权组和高级数据库管理程序(实例级)维护和实用操作组成。在DB2可用的5 种权限中,SYSADM、SYSCTRL和 SYSMAINT 是实例级权限。这意味着它们的范围包含实例级命令以及针对这个实例中的所有数据库的命令。这些权限只能分配给组;可以通过 DBM CFG 文件分配这些权限。

1、获得 SYSADM

第23页

深入浅出DB2

具有 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命令显式地分配这些权限。

第24页

深入浅出DB2

语法:

>>-GRANT--authorization-specification---------------------------> .-,----------------------. V |

>--TO----+-authorization-name-+-+--+-------------------+------->< +-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.\

7.4 普通用户拥有实例用户权限

7.4.1 Bnd命令

>>/home/db2inst/sqllib/bnd ->ll db2lkfun.bnd

->db2 bind db2lkfun.bnd blocking all grant public ->db2 bind db2look.bnd blocking all grant public

8 DB2LOOK用法

db2look -e -x -d auditdb -o a.sql

db2look –d auditdb -e –td@ -o table.ddl

第25页


DB2学习笔记chensy(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:表7-2 钢筋安装质量检验记录(梁、板)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: