数据库权限分为实例权限级别(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
“直接” 权限意味着此权限是明确授予此用户的。“间接” 权限意味着此用户属于具有此权限的组。