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

GBae 8s SQL 指南:语法_2. SQL 语句_2.143 START VIOLATIONS TABLE 语句(14)

GBASE数据库 2022-04-20
277

下列规则涉及在诊断表上的访问权限:
⚫ 当创建诊断表时,目标表的所有者成为诊断表的所有者。
⚫ 诊断表的所有者自动地收到诊断表上的所有表级权限,包括 Alter 和 References 权限。然
而,数据库服务器防止诊断表的所有者更改诊断表或給诊断表添加引用的约束。
⚫ 您可使用 GRANT 和 REVOKE 语句来修改在诊断表上的初始权限集。
⚫ 对于在其上定义有过滤器模式唯一索引或约束的目标表上的 INSERT、DELETE 或
UPDATE 操作,您必须在违反表和诊断表上有 Insert 权限。
如果您在违反表和诊断表上没有 Insert 权限,则数据库服务器在目标表上执行 INSERT、
DELETE 或 UPDATE 语句,假如您在目标表上有必要的权限的话。数据库服务器不返回
有关在违反表和诊断表上缺少 Insert 权限的错误,除非在执行 INSERT、DELETE 或
UPDATE 语句期间检测到完整性违反。
类似地,当您发出 SET Database Object Mode 语句来将禁用的约束或禁用的唯一索引设置
为启用的或过滤器模式,且对于目标表存在违反表和诊断表时,您必须在违反表和诊断表
上有 Insert 权限。
如果您在违反表和诊断表上没有 Insert 权限,则数据库服务器执行 SET Database Object
Mode 语句,假如您在目标表上有必要的权限的话。数据库服务器不返回有关在违反表和诊 
断表上缺少 Insert 权限的错误,除非在执行 SET Database Object Mode 语句期间检测到完
整性违反。
⚫ 在诊断表上的权限的初始集的授予者与在目标表上的权限的授予者相同。例如,如果通过
用户 wayne 和用户 laurie 在目标表上授予了 用户 jenny Insert 权限,则用户 wayne 和
用户 laurie 都将在诊断表上的 Insert 权限授予用户 jenny。
⚫ 一旦为目标表启动诊断表,从一用户取消在目标表上的权限不会自动地从该用户取消在诊
断表上的同一权限。您反而必须显式地在诊断表上从该用户取消该权限。
⚫ 如果您在目标表上有分片级权限,则您在诊断表上有相应的表级权限。
下一示例展示如何从目标表上的当前权限推导出诊断表上的权限的初始集。 假设您有持有
customer 数据的名为 cust_subset 的表。此表由下列列组成:ssn (社保编号)、fname
(名)、lname(姓)和 city(客户生活的城市)。在 cust_subset 表上存在下列访问权限集:
⚫ 用户 alvin 是表的所有者。
⚫ 用户 barbara 有对表的 Insert 和 Index 权限。她还有在 ssn 和 lname 列上的 Select 权
限。
⚫ 用户 danny 有表上的 Alter 权限。
⚫ 用户 carrie 在 city 列上有 Update 权限。她还在 ssn 列上有 Select 权限。
现在,用户 alvin 为 cust_subset 表启动名为 cust_subset_viols 的违反表和名为
cust_subset_diags 的诊断表:
START VIOLATIONS TABLE FOR cust_subset
USING cust_subset_viols, cust_subset_diags;
数据库服务器在 cust_subset_diags 诊断表上授予下列初始的权限集:
⚫ 用户 alvin 是诊断表的所有者,因此他有表上的所有表级权限。
⚫ 用户 barbara 在诊断表上有 Insert、Delete、Select 和 Index 权限。
⚫ 用户 carrie 在诊断表上有 Insert、Delete、Select 和 Update 权限。
⚫ 用户 danny 在诊断表上没有权限。

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

评论