对违反表的权限的示例

下列示例说明如何从对目标表的权限的当前集派生对违反表的权限的初始集。

例如,假设我们创建了名为 cust_subset 的表,且此表由下列列组成:ssn(客户的社会保险号码)、fname(客户的名)、lname(客户的姓)以及 city(客户生活的城市)。

cust_subset 表上存在下列权限集:
  • 用户 alvin 是该表的所有者。
  • 用户 barbara 具有对该表的 Insert 和 Index 权限。她还具有对 ssnlname 列的 Select 权限。
  • 用户 carrie 具有对 city 列的 Update 权限。她还具有对 ssn 列的 Select 权限。
  • 用户 danny 具有对该表的 Alter 权限。
现在,用户 alvincust_subset 表启动名为 cust_subset_viols 的违反表和名为 cust_subset_diags 的诊断表,如下:
START VIOLATIONS TABLE FOR cust_subset
   USING cust_subset_viols, cust_subset_diags;
数据库服务器授予对 cust_subset_viols 违反表的下列初始权限集:
  • 用户 alvin 是该违反表的所有者,因此他具有对该表的所有表级别权限。
  • 用户 barbara 具有对违反表的 Insert、Delete 和 Index 权限。她还具有对违反表的下列列的 Select 权限:ssn 列、lname 列、gbasedbt_tupleid 列、gbasedbt_optype 列和 gbasedbt_recowner 列。
  • 用户 carrie 具有对违反表的 Insert 和 Delete 权限。她还具有对违反表的下列列的 Update 权限:city 列、gbasedbt_tupleid 列、gbasedbt_optype 列和 gbasedbt_recowner 列。她具有对违反表的下列列的 Select 权限:ssn 列、gbasedbt_tupleid 列、gbasedbt_optype 列和 gbasedbt_recowner 列。
  • 用户 danny 不具有对违反表的任何权限。