McDBRight objects encapsulate a combination of security/access permissions. The meaning of these objects, and how they are used, is context sensitive. Each McDBRight object is either owned by:
A McDBRights object, representing one axis of access in the combination of accesses the McDBRights object represents.
or
A McDBRightsOwner (McDBUser or McDBGroup), representing the combination of rights that McDBRightsOwner has to unsecure McDBNode objects.
When an McDBRight is owned by an McDBRights, it is defined by the single combination of access rights (i.e. presence/absence of Read, Write, and Delete rights), WHICH MAY NOT BE CHANGED. A McDBRight of this type represents the McDBRightsOwner object(s) that have this combination of rights. Therefore, McDBRight objects of this type may have its Names changed, thereby changing the accesses of McDBRightsOwner object(s) to the McDBNode.Rights to which the Owner apply(ies).
When an McDBRight is instanced from an McDBRightsOwner, it defines the rights that McDBRightsOwner has to Unsecure McDBNode objects. In this case, the Names property is empty/unused and the rights axes (Read, Write, and Delete) may be assigned, thereby changing the permissions the McDBRightsOwner has to Unsecure McDBNode objects.