下列示例说明如何从对目标表的当前权限集派生对诊断表的初始权限集。
例如,假设名为 cust_subset
的表由下列列组成:ssn(客户的社会保险编号)、fname(客户的名)、lname(客户的姓)以及
city(客户生活的城市)。
对
cust_subset 表存在下列权限集:
- 用户 alvin 为该表的所有者。
- 用户 barbara 具有对该表的 Insert 和 Index 权限。她还具有对 ssn 和 lname 列的 Select 权限。
- 用户 carrie 具有对 city 列的 Update 权限。她还具有对 ssn 列的 Select 权限。
- 用户 danny 具有对该表的 Alter 权限。
现在,用户
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 对诊断表没有权限。