DB2五种管理权限
SYSADM, SYSCTRL SYSMAINT DBADM and LOAD
前三个权限是instance-level,and can only be assigned to a group and are done so through the Database Manager Configuration file.
后两个权限是database-level,are assigned to a user or group for a particular database.
db2 get authorizations
DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。
DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看命令是db2 get authorizations。
DB2授权可分为实例级权限授权和数据库级别授权,实例级别权限必须由拥有SYSADM权限的用户通过update cfg来授予用户组,
数据库对象级别权限由DBAMD权限用户通过grant命令显示的授予用户或用户组。
“直接” 权限意味着此权限是明确授予此用户的。“间接”权限意味着此用户属于具有此权限的组。
实例级别权限(只能在用户组级别上进行分配):
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 - 表空间特权
grant connect to