GBase 8s数据库权限--对数据库级对其对象的权限
您可使用下列数据库权限来控制谁可访问数据库:
• 数据库级别权限
• 表级别权限
• 例程级别权限
• 语言级别权限
• 类型级别权限
• 序列级别权限
• 分片级别权限
本部分简要地描述数据库级别和表级别权限。要获取关于数据库权限的更多信息,请参阅
《GBase 8s 数据库设计和实现指南》。要了解权限的列表以及 GRANT 和 REVOKE 语
句的描述,请参阅《GBase 8s SQL 指南:语法》。
1 数据库级别权限
当您创建数据库时,您是唯一可访问它的人,直到您作为该数据库的所有者或数据库管理
员(DBA),将数据库级别权限授予其他人。下表展示数据库级别权限。
权限 | 影响 |
Connect | 允许您打开数据库、发出查询以及在临时表上创建和放置索引 |
Resource | 允许您创建永久表 |
DBA | 允许您作为 DBA 执行若干附加的函数 |
2 表级别权限
当您在不符合 ANSI 的数据库中创建表时,所有用户都有访问该表的权限,直到您作为该
表的所有者取消特定用户的表级别权限为止。下表介绍控制用户可如何访问表的四种权限。
权限 | 用途 |
Select | 逐表授予权限,并允许您从表选择行。(此权限可限定于表中的特定列。) |
Delete | 允许您删除行 |
Insert | 允许您插入行 |
Update | 允许您更新现有的行(即,更改其内容) |
创建数据库和表的人们经常将 Connect 和 Select 权限授予 public,以便所有用户都拥有它
们。如果您可查询表,则您至少具有对那个数据库和表的 Connect 和 Select 权限。
您需要其他的表级别权限来修改数据。表的所有者经常保留这些权限,或仅将它们授予特
定的用户。因此,您可能无法修改您可自由地查询的一些表。
例如,由于这些权限都是逐表授予的,因此您仅可拥有对一个表的 Insert 权限,以及仅拥
有对另一表的 Update 权限。甚至可进一步将 Update 权限限定于表中的特定列。
要获取关于这些及其他表级别权限的更多信息,请参阅《GBase 8s 数据库设计和实现指
南》。
3 显示表权限
如果您是表的所有者(即,如果您创建了它),则您拥有对那个表的所有权限。否则,您
可通过查询系统目录来确定您对于某个表拥有的权限。系统目录由描述数据库结构的系统
表构成。对每一表所授予的权限都记录在 systabauth 系统表中。要显示这些权限,您还必须知道该表的唯一标识符编号。在 systables 系统表中指定此编号。要显示对 orders 表授予的权限,您可输入下列 SELECT 语句:
SELECT * FROM systabauth
WHERE tabid = (SELECT tabid FROM systables GBase 8s SQL 指南:教程
WHERE tabname = 'orders');
该查询的输出类似于下列示例:
grantorgrantee tabid tabauth
tfecitmutator 101 su-i-x--
tfecitprocrustes101 s--idx--
tfecitpublic 101 s--i-x--
授权者是授予权限的用户。授权者通常是表的所有者,但所有者可为授权者授权了的另一
用户。被授权者是将权限授予其的用户,被授权者 public意味着有 Connect 权限的任何用
户。如果您的用户名未出现,则您仅拥有授予给了 public 的那些权限。
tabauth 列指定授予的权限。此列的每一行中的字母是权限名称的首字母,除了 i 表示 Insert
以及 x 表示 Index 之外。在此示例中,public 具有 Select、Insert 和 Index 权限。仅用
户 mutator 具有 Update 权限,仅用户 procrustes 具有 Delete 权限。
在数据库服务器为您执行任何操作(例如,执行 DELETE 语句)之前,它都执行类似于前
一查询的查询。如果您不是该表的所有者,且如果数据库服务器找不到您的用户名
或 public 对该表的必要权限,则它拒绝执行该操作。
4 将权限授予角色
作为 DBA,您可创建角色来使得给予一类用户的权限标准化。当您将权限指定给那个角色
时,那个角色的每个用户都拥有那些权限。用于定义和操纵角色的 SQL 语句包括:CREATE
ROLE、DROP ROLE、GRANT、REVOKE 和 SET ROLE。要获取关于定义和操纵角色的
SQL 语句的语法的更多信息,请参阅《GBase 8s SQL 指南:语法》。
在连接到数据库时,缺省的角色自动地应用于特定的用户和组,而不要求该用户发出 SET
ROLE 语句。例如:
GRANT DEFAULT ROLE manager TO larry;
要获取关于角色与缺省角色的更多信息,请参阅 控制数据库使用 或参阅《GBase 8s 管理
员指南》。
要获取关于授予和撤销权限的更多信息,请参阅 授予和撤销应用程序中的权限。另请参阅
《GBase 8s 数据库设计和实现指南》




