How security labels control access
Security labels rely on security label components to store information about the classification of data and about which users have access authority.
Label-based access control (LBAC) works by comparing the labels that you have associated with users against labels that you have associated with data by using a predefined rule set (IDSLBACRULES). You construct these labels with security label components, which represent different levels of data classification and access authority. Before you design an LBAC implementation, you must know how the labels store information in the components and how user operation and component type affect label comparison.
LBAC compares values for each user and data label when someone attempts access to a protected table. A user without a security label has a NULL value. When you create a security label, you select its values by choosing elements from each security label component that is part of the policy. Variations in the way you group the elements provide the differing values among labels that contain the same components.
LBAC compares, one-by-one, each component value of a user label to the corresponding component value in the data label. The comparison between labels is done in the sequence that the components are listed in the labels. The comparison determines if the user label component meets the appropriate IDSLBACRULE criterion for access. When all the values in the user label meet the criteria for access, the user label dominates the data label and can work with the protected data. If any user label values do not dominate, then the user's credentials do not fit the criteria of the protecting security label. LBAC denies protected-data access to a user with a NULL value, unless the DBSECADM has granted the user an exemption to the security policy protecting the table.
Read Access Rules
When a user attempts to retrieve data from an LBAC-protected table with a SELECT operation, the comparison follows Read Access Rules.
- IDSLBACREADARRAY
- The array component of the user security label must be greater than or equal to the array component of the data security label. The user can read data only at or below the level of the value in the array component of the user label, where level is the value's relative ranking in the order of array elements.
- IDSLBACREADSET
- The user security label set component must include every element in the value for the set component of the data security label.
- IDSLBACREADTREE
- The tree component of the user security label must include at least one of the elements in the value for the tree component of the data security label or an ancestor of one such element.
Write Access Rules
When a user attempts an INSERT, UPDATE, or DELETE operation, the comparison follows Write Access Rules.
- IDSLBACWRITEARRAY
- The array component of the user security label must be equal to the array component of the data security label. The user can write data only at the level of the value in the array component of the user label, where level is the value's relative ranking in the order of array elements.
- IDSLBACWRITESET
- The user security label set component must include every element in the value for the set component of the data security label.
- IDSLBACWRITETREE
- The tree component of the user security label must include at least one of the elements in the value for the tree component of the data security label or an ancestor of one such element.