DB2权限和特权
数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。 特权是比权限更细力度的控制。 数据库特权: CONNECT
数据库权限分为实例权限级别(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和数据库权限级别(DBAMD、LOAD)。SYSCTRL、SYSMAINT、SYSMON权限级别的用户不能访问数据,DBAMD、LOAD权限级别的用户可以访问数据。
特权是比权限更细力度的控制。
数据库特权:
CONNECT -允许用户连接数据库
BINDADD -允许用户在数据库中创建新的包
CREATETAB -允许用户在数据库中创建新的表
CREATE_NOT_FENCED -允许用户注册定义为 NOT FENCED 的用户定义函数(UDF)或存储过程
IMPLICIT SCHEMA -允许用户在尚不存在的模式中创建对象(它自动地创建模式)*
QUIESCE_CONNECT -允许用户连接处于 quiesced 状态的数据库
CREATE_EXTERNAL_ROUTINE -允许用户注册外部例程(用 C 和 Java 等外部语言编写的例程)
表空间特权:
USE -允许用户在指定的表空间中创建表
模式特权:
CREATEIN -允许用户在模式中创建对象
ALTERIN -允许用户在模式中修改对象
DROPIN -允许用户从模式中删除对象
表/视图特权:
CONTROL -授予用户在表和视图上的所有特权,以及将这些特权(除了 CONTROL)授予别人
ALTER -允许用户在表中添加列、在表和它的列上添加或修改注释、添加主键或惟一约束以及创建或删除表检查约束
DELETE -允许用户从表或视图中删除行
INDEX -允许用户在表上创建索引
INSERT -允许用户在表或视图中插入数据
REFERENCES -允许用户创建和删除外键,这需要指定关系中的父表
SELECT -允许用户从表或视图中检索行、在表上创建视图以及运行 EXPORT 实用程序
UPDATE -允许用户修改表、视图或者表或视图中某些列中的数据;用户可以只在特定列上具有这种特权
索引特权:
CONTROL -允许用户删除索引
包特权:
CONTROL -允许用户重新绑定、删除或执行包,以及将这些特权(除了 CONTROL)授予别人
BIND -允许用户重新绑定现有的包
EXECUTE -允许用户执行包
例程特权:
EXECUTE 允许用户调用例程,从例程创建函数(只应用于函数),以及在任何 DDL 语句(比如 CREATE VIEW、CREATE TRIGGER 或定义约束时)中引用例程
序列特权:
USAGE -允许用户对序列使用 NEXTVAL 和 PREVVAL 表达式
ALTER -允许用户使用 ALTER SEQUENCE 语句修改序列属性
特权的信息存储在七个系统编目视图中:
* SYSCAT.DBAUTH - 数据库特权
* SYSCAT.COLAUTH - 表和视图列特权
* SYSCAT.INDEXAUTH - 索引特权
* SYSCAT.PACKAGEAUTH - 包特权
* SYSCAT.SCHEMAAUTH - 模式特权
* SYSCAT.TABAUTH - 表和视图特权
* SYSCAT.TBSPACEAUTH - 表空间特权
查看当前连接用户权限:
$ db2 get authorizations
Administrative Authorizations for Current User
Direct SYSADM authority = NO
Direct SYSCTRL authority = NO
Direct SYSMAINT authority = NO
Direct DBADM authority = YES
Direct CREATETAB authority = YES
Direct BINDADD authority = YES
Direct CONNECT authority = YES
Direct CREATE_NOT_FENC authority = YES
Direct IMPLICIT_SCHEMA authority = YES
Direct LOAD authority = YES
Direct QUIESCE_CONNECT authority = YES
Direct CREATE_EXTERNAL_ROUTINE authority = YES
Direct SYSMON authority = NO
Indirect SYSADM authority = YES
Indirect SYSCTRL authority = NO
Indirect SYSMAINT authority = NO
Indirect DBADM authority = NO
Indirect CREATETAB authority = NO
Indirect BINDADD authority = NO
Indirect CONNECT authority = NO
Indirect CREATE_NOT_FENC authority = NO
Indirect IMPLICIT_SCHEMA authority = NO
Indirect LOAD authority = NO
Indirect QUIESCE_CONNECT authority = NO
Indirect CREATE_EXTERNAL_ROUTINE authority = NO
Indirect SYSMON authority = NO
“直接” 权限意味着此权限是明确授予此用户的。“间接” 权限意味着此用户属于具有此权限的组。