对象可能拥有多种权限,但每个用户或组只拥有一种权限。例如,一种权限可能指定 GroupAdmin 对某个对象具有管理员角色。另一种权限可能指定 GroupVMAdmin 对同一个对象具有虚拟机管理员角色。但是,GroupVMAdmin 组不能对该对象具有同一个 GroupVMAdmin 的其他权限。

如果父对象传播属性设置为 true,则子对象将继承其父对象的权限。直接在子对象上设置的权限将取代父对象中的权限。请参见示例 2:子权限替代父权限

如果对同一对象定义了多个组角色,且用户属于这些组中的两个或多个组,则可能出现以下两种情况:

  • 没有任何用户权限是直接在对象上定义的。在这种情况下,用户拥有各组对该对象所拥有权限的集合。
  • 用户的权限是直接在对象上定义的。在这种情况下,用户的权限将优先于所有组权限。

示例 1:从多个组继承权限

此示例说明了对象如何从组(在父对象上授予了权限)中继承多个权限。

在此示例中,为两个不同组中的同一对象分配两种权限。

  • PowerOnVMRole 可启动虚拟机。
  • SnapShotRole 可以拍摄虚拟机快照。
  • 在虚拟机文件夹上为 PowerOnVMGroup 授予 PowerOnVMRole,并将权限设置为传播到子对象。
  • 在虚拟机文件夹上为 SnapShotGroup 授予 SnapShotRole,并将权限设置为传播到子对象。
  • 用户 1 未获得特定特权。

同时属于 PowerOnVMGroup 和 SnapShotGroup 的用户 1 登录。用户 1 可以同时启动虚拟机 A 和虚拟机 B 并对其执行快照。

图 1. 示例 1:从多个组继承权限
继承多个权限的示例。

示例 2:子权限替代父权限

此示例说明了为子对象分配的权限如何覆盖为父对象分配的权限。可以使用此替代行为限制用户访问清单的特定区域。

在此示例中,权限在两个不同组的两个不同对象上定义。

  • PowerOnVMRole 可启动虚拟机。
  • SnapShotRole 可以拍摄虚拟机快照。
  • 在虚拟机文件夹上为 PowerOnVMGroup 授予 PowerOnVMRole,并将权限设置为传播到子对象。
  • 在虚拟机 B 上为 SnapShotGroup 授予 SnapShotRole。

同时属于 PowerOnVMGroup 和 SnapShotGroup 的用户 1 登录。因为在层次结构中,SnapShotRole 被分配在 PowerOnVMRole 之下,所以它将在虚拟机 B 上替代 PowerOnVMRole。用户 1 可以启动虚拟机 A,但不能执行快照。用户 1 可对虚拟机 B 执行快照但无法将其启动。

图 2. 示例 2:子权限替代父权限
子权限替代父权限的示例。

示例 3:用户角色替代组角色

下例说明了直接分配给单个用户的角色如何替代与分配给组的角色关联的特权。

在此示例中,权限在相同的对象上定义。一种权限与包含某个角色的组相关联,另一种权限与包含某个角色的单个用户相关联。用户属于组成员。

  • PowerOnVMRole 可启动虚拟机。
  • 在虚拟机文件夹上为 PowerOnVMGroup 授予 PowerOnVMRole。
  • 在虚拟机文件夹上为用户 1 授予 NoAccess 角色。

属于 PowerOnVMGroup 的用户 1 登录。在虚拟机文件夹上为用户 1 授予的 NoAccess 角色替代分配给组的角色。用户 1 无权访问虚拟机文件夹或虚拟机 A 和虚拟机 B。虚拟机 A 和 B 在层次结构中对用户 1 不可见。

图 3. 示例 3:用户权限替代组权限
用户权限替代组权限的示例。