对于所有有权使用指定数据库的用户都必须赋予其数据库级别的用户权限。在GBase 8s 中,数据库级别的用户权限有三种,按权限从低到高排列依次为:CONNECT、RESOURCE、DBA。
1. CONNECT
这是级别最低的一种数据库级别用户权限。拥有该权限的用户可以执行SELECT、INSERT、UPDATE 和 DELETE 语句,针对数据表执行存储过程,创建数据表的视图,创建临时表。
具有 connect 特权的任何用户都可以执行以下的功能:
• 使用语句连接数据库 • 执行 Select, Insert, Update, Delete 语句(如果用户有必要的表 级别权限)
• 创建视图,如果用户对基本表有 select 权限
• 创建同义词
• 创建临时表以及创建临时表的索引
• 改变或删除表或索引,如果用户拥有表或者索引
• 对表或者视图授予特权,如果用户拥有表
2. RESOURCE
拥有该权限的用户除拥有 CONNECT 的全部权限外,还可以创建新表,并可 以对自己创建的表执行 ALTER 和 DROP 操作,并执行创建索引,执行自定义函数 (UDR)等操作。
除了具有 connect 特权的功能,Resource 特权的持有者可执行以下的功能:
• 创建新表
• 创建新索引
• 创建新 UDR
• 创建新数据类型
3. DBA
数据库的建立者和拥有者被自动受于这种权限。拥有该权限的用户除拥有 CONNECT、RESOURCE 的全部权限外,还可以对其他用户授予或解除 CONNECT、 RESOURCE 和 DBA 权限,可以对其他用户创建的表和视图执行 DROP 和 ALTER 操作。也可以对数据库执行 DROP、START、STOP 和 RECOVER 操作。
拥有 Resource 特权的所有能力,并且能执行以下的附加操作:
• 将任何数据库特权(包括 DBA 特权)授予其他用户
• 将任何表级别特权授予其他用户和角色
• 创建表,视图和索引,指定其他用户作为这些对象的所有者
• 改变,删除或者重命名数据库对象,不管谁拥有它们
• 插入,删除或更新除 systables 之外的任何系统目录表的行