数据库级权限

数据库级权限的三个同心层,Connect、Resource 和 DBA,对数据库访问和控制依次递增的授权。仅拥有 DBA 权限的用户可授予或取消数据库级权限。

数据库级权限

由于权限的层级组织(如本节稍后描述的权限定义中所述的那样),如果您从拥有 DBA 权限的用户取消 Resource 权限或 Connect 权限,则该语句没有作用。如果您从有 DBA 权限的用户取消该 DBA 权限,则该用户保留对该数据库的 Connect 权限。要拒绝有 DBA 或 Resource 权限的用户访问数据库,您必须先取消 DBA 或 Resource 权限,然后在单独的 REVOKE 语句中取消 Connect 权限。

类似地,如果您从有 Resource 权限的用户取消 Connect 权限,则该语句没有作用。如果您从用户取消 Resource 权限,则该用户保留对数据库的 Connect 权限。

仅用户或 PUBLIC 可持有数据库级权限。您不可从角色取消这些权限,因为角色不可持有数据库级权限。

下表罗列每一数据库级权限的关键字。
权限 作用
DBA 有 Resource 权限的所有能力,且可执行下列附加的操作:
  • 将包括 DBA 权限在内的所有数据库级权限授予另一用户。
  • 将任何表级权限授予另一用户或角色。
  • 将角色授予用户或另一角色。
  • 取消其授予者为您在 REVOKE 语句的 AS 子句中作为 revoker 的权限。
  • 当注册 UDR 时,限制 DBA 的 Execute 权限。
  • 执行 SET SESSION AUTHORIZATION 语句。
  • 创建任何数据库对象。
  • 创建表、视图和索引,指定另一用户作为这些对象的所有者。
  • 变更、删除或重命名数据库对象,不管其所有者是谁。
  • 执行 UPDATE STATISTICS 语句的 DROP DISTRIBUTIONS 选项。
  • 执行 DROP DATABASE 和 RENAME DATABASE 语句。
RESOURCE 让您扩展数据库的结构。除了 Connect 权限的能力之外,Resource 权限的持有者还可执行下列操作:
  • 创建新表。
  • 创建新索引。
  • 创建新的用户定义的例程。
  • 创建新的数据类型。
CONNECT 如果您有此权限,则可查询和修改数据,如果您拥有您想要修改的数据库对象,则可修改该数据库模式。持有 Connect 权限的用户可执行下列操作:
  • 以 CONNECT 语句或另一连接语句连接到数据库。
  • 执行 SELECT、INSERT、UPDATE 和 DELETE 语句,只要用户有必要的表级权限。
  • 创建视图,只要用户有对基础表的 Select 权限。
  • 创建同义词。
  • 创建临时表,并在临时表上创建索引。
  • 变更或删除表或索引,如果用户拥有该表或索引(或有对表的 Alter、Index 或 References 权限)。
  • 授予对表的权限,如果用户拥有该表(或通过 WITH GRANT OPTION 关键字被授予了对该表的权限)。

提示:要确定哪些用户有对数据库的 DBA 权限,请从 DB-Access 或您的应用系统运行此查询:

select username,usertype from sysusers;

输出展示用户名(例如,public 和 gbasedbt)后跟下列代码之一: