GBase 8c 数据库至少支持如下权限:
SELECT
允许 SELECT 从任何列、或特定的列、表、视图、物化视图、或其他类似表格的对象。 也允许使用 COPY TO. 还需要这个权限来引用UPDATE 或 DELETE中现有的列值。 对于序列,这个权限还允许使用currval 函数。对于大对象,此权限允许读取对象。
INSERT
允许将新行的 INSERT 加入表、视图等等。 可以在特定列上授予,在这种情况下INSERT命令中只有那些列可以被分配(其他列将因此而收到默认值)。 还允许使用COPY FROM。
UPDATE
允许 UPDATE 更新任何列、或指定列、表、视图等等。 (实际上,任何有效的UPDATE命令也需要SELECT权限,因为它必须引用表列来确定要更新的行,和/或计算列的新值。) SELECT ... FOR UPDATE和SELECT ... FOR SHARE除了SELECT权限外,还需要至少一列上的这个权限。 对于序列,这个权限允许使用 nextval 和 setval 函数。对于大对象,此权限允许写入或截断对象。
DELETE
允许 DELETE 从表、视图等等中删除行。 (任何有效的DELETE命令也需要SELECT权限,因为它必须引用表列来确定要删除的行。)
TRUNCATE
允许在表、视图等等上 TRUNCATE 。
REFERENCES
允许创建引用表或表的特定列的外键约束。
TRIGGER
允许在表、视图等等上创建触发器。
CREATE
对于数据库,允许在数据库中创建新的模式和发布。
对于模式,允许在模式中创建新对象。要重命名现有对象,你必须拥有对象 and所包含模式的此权限。
对于表空间,允许在表空间中创建表、索引和临时文件,并允许创建将表空间作为默认表空间的数据库。(注意,撤销此特权不会更改已有对象的位置。)
CONNECT
允许受让者连接到数据库。此权限在连接启动时进行检查(加之pg_hba.conf施加的任何约束).
TEMPORARY
允许在使用数据库时创建临时表。
EXECUTE
允许调用函数或过程,包括使用在函数之上实现的任何运算符。这是适用于函数和过程的唯一权限类型。
USAGE
对于程序语言,允许使用语言来创建该语言的函数。 这是适用于过程语言的唯一权限类型。
对于模式,允许访问模式中包含的对象(假设对象自己的权限要求也已得到满足)。 从本质上讲,这允许受让者“look up”模式中的对象。如果没有此权限,仍可以看到对象名称,例如通过查询系统目录。此外,在撤消此权限后,现有会话可能还具有以前执行过此查找的语句,因此这不是阻止对象访问的彻底安全的方法。




