暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s数据库权限

晚安的星星云 2021-12-23
982

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 数据库设计和实现指南》

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论