El conjunto de reglas LBAC DB2LBACRULES proporciona un conjunto tradicional de reglas para comparar los valores de los componentes de etiqueta de seguridad. Protege tanto de escritura hacia arriba como de escritura hacia abajo.
¿Qué son escribir y anotar?
La escritura hacia arriba y la escritura hacia abajo sólo se aplican a los componentes de tipo ARRAY y sólo al acceso de escritura. La grabación se produce cuando el valor que protege los datos en los que está grabando es mayor que el valor. La escritura es cuando el valor que protege los datos es menor que el suyo. De forma predeterminada, no se permite escribir ni escribir, lo que significa que sólo puede escribir datos protegidos por el mismo valor que tiene.
Al comparar dos valores para el mismo componente, las reglas que se utilizan dependen del tipo del componente (ARRAY, SET o TREE) y del tipo de acceso que se está intentando (lectura o grabación). Esta tabla lista las reglas, indica cuándo se utiliza cada una y describe cómo determina la regla si el acceso está bloqueado.
Tabla 1. Resumen de las reglas DB2LBACRULES
| Nombre de regla |
Se utiliza para comparar valores de este tipo de componente |
Se utiliza para este tipo de acceso |
El acceso está bloqueado cuando se cumple esta condición |
| DB2LBACREADARRAY |
ARRAY |
Read |
El valor del usuario es menor que el valor de protección. |
| DB2LBACREADSET |
SET |
Read |
Hay uno o más valores de protección que el usuario no retiene. |
| DB2LBACREADTREE |
TREE |
Read |
Ninguno de los valores del usuario es igual o un ancestro de uno de los valores de protección. |
| DB2LBACWRITEARRAY |
ARRAY |
Escritura |
El valor del usuario es mayor que el valor de protección o menor que el valor de protección.1 |
| DB2LBACWRITESET |
SET |
Escritura |
Hay uno o más valores de protección que el usuario no retiene. |
| DB2LBACWRITETREE |
TREE |
Escritura |
Ninguno de los valores del usuario es igual o un ancestro de uno de los valores de protección. |
Nota:
- Se puede considerar que la regla DB2LBACWRITEARRAY es una combinación de dos reglas diferentes. Uno impide escribir en datos que son superiores a su nivel (escritura) y el otro impide escribir en datos que son inferiores a su nivel (escritura). Al otorgar una exención a esta regla, puede eximir al usuario de cualquiera de estas reglas o de ambas.
Cómo manejan las reglas los valores vacíos
Todas las reglas tratan los valores vacíos de la misma forma. Un valor vacío no bloquea ningún otro valor y está bloqueado por cualquier valor no vacío.
Ejemplos de DB2LBACREADSET y DB2LBACWRITESET
Estos ejemplos son válidos para un usuario que intenta leer o intentar grabar datos protegidos. Asumen que los valores son para un componente de tipo SET que tiene estos elementos: uno dos tres cuatro
Tabla 2. Ejemplos de aplicación de las reglas DB2LBACREADSET y DB2LBACWRITESET .
| Valor del usuario |
Valor de protección |
¿Acceso bloqueado? |
| 'ONE' |
'ONE' |
No bloqueado. Los valores son los mismos. |
| "(uno, dos, tres)" |
'ONE' |
No bloqueado. El valor del usuario contiene el elemento 'uno'. |
| "(uno, dos)" |
"(uno, dos, cuatro)" |
Bloqueado. El elemento 'four' está en el valor de protección pero no en el valor del usuario. |
| '()' |
'ONE' |
Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío. |
| 'ONE' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
| '()' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
DB2LBACREADTREE y DB2LBACWRITETREE
Estos ejemplos son válidos tanto para el acceso de lectura como para el acceso de escritura. Presuponen que los valores son para un componente de tipo TREE que se ha definido de este modo:
CREATE SECURITY LABEL COMPONENT mycomp
TREE (
'Corporate' ROOT,
'Publishing' UNDER 'Corporate',
'Software' UNDER 'Corporate',
'Development' UNDER 'Software',
'Sales' UNDER 'Software',
'Support' UNDER 'Software'
'Business Sales' UNDER 'Sales'
'Home Sales' UNDER 'Sales'
)
Esto significa que los elementos están en esta disposición:
Tabla 3. Ejemplos de aplicación de las reglas DB2LBACREADTREE y DB2LBACWRITETREE .
| Valor del usuario |
Valor de protección |
¿Acceso bloqueado? |
| '(Soporte, Ventas)' |
"Desarrollo" |
Bloqueado. El elemento 'Desarrollo' no es uno de los valores del usuario y ni 'Soporte' ni 'Ventas' es un ancestro de 'Desarrollo'. |
| '(Desarrollo, Software)' |
"(Business Sales, Publishing)" |
No bloqueado. El elemento 'Software' es un ancestro de 'Ventas de negocio'. |
| "(Publishing, Sales)" |
'(Publicación, Soporte)' |
No bloqueado. El elemento 'Publishing' está en ambos conjuntos de valores. |
| "Corporativo" |
"Desarrollo" |
No bloqueado. El valor raíz es un ancestro de todos los demás valores. |
| '()' |
"Ventas" |
Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío. |
| "Home Sales" |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
| '()' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
Ejemplos de DB2LBACREADARRAY
Estos ejemplos son sólo para acceso de lectura. Asumen que los valores son para un componente de tipo ARRAY que incluye estos elementos en esta disposición:
Tabla 4. Ejemplos de aplicación de la regla DB2LBACREADARRAY .
| Valor del usuario |
Valor de protección |
¿Acceso de lectura bloqueado? |
| "Secreto" |
'EMPLOYEE' |
No bloqueado. El elemento 'Secret' es superior al elemento 'Employee'. |
| "Secreto" |
"Secreto" |
No bloqueado. Los valores son los mismos. |
| "Secreto" |
'Top Secret' |
Bloqueado. El elemento 'Top Secret' es superior al elemento 'Secret'. |
| '()' |
'PUBLIC' |
Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío. |
| 'PUBLIC' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
| '()' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
Ejemplos de DB2LBACWRITEARRAY
Estos ejemplos son sólo para acceso de escritura. Asumen que los valores son para un componente de tipo ARRAY que incluye estos elementos en esta disposición:
Tabla 5. Ejemplos de aplicación de la regla DB2LBACWRITEARRAY .
| Valor del usuario |
Valor de protección |
¿Acceso de escritura bloqueado? |
| "Secreto" |
'EMPLOYEE' |
Bloqueado. El elemento 'Employee' es inferior al elemento 'Secret'. |
| "Secreto" |
"Secreto" |
No bloqueado. Los valores son los mismos. |
| "Secreto" |
'Top Secret' |
Bloqueado. El elemento 'Top Secret' es superior al elemento 'Secret'. |
| '()' |
'PUBLIC' |
Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío. |
| 'PUBLIC' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |
| '()' |
'()' |
No bloqueado. Ningún valor está bloqueado por un valor vacío. |