Controlar el acceso a los registros
Objetivos de aprendizaje
- Enumerar las cuatro maneras que existen de controlar el acceso a los registros.
- Describir situaciones en las que se debe usar cada uno de los cuatro controles de seguridad de nivel de registro.
- Explicar cómo interactúan los diferentes controles de registro entre sí.
- Establecer valores predeterminados de toda la organización para controlar el acceso a los registros.
Seguridad a nivel de registro
- ¿Sus usuarios deben tener un acceso abierto a cada registro o solo a un subconjunto?
- En el caso de subconjuntos, ¿qué reglas deben determinar si los usuarios pueden acceder a ellos?
Para nuestra aplicación de contratación de ejemplo, supongamos que crea un perfil nuevo llamado Contratador para darle a los contratadores los permisos a nivel de objeto que necesitan. Imaginemos que restringe la capacidad para eliminar objetos de contratación. Por lo tanto, los contratadores no podrán eliminar estos objetos. Sin embargo, conceder a los contratadores permisos para crear, leer o modificar objetos de contratación no implica necesariamente que los contratadores puedan leer o modificar todos los registros del objeto de contratación. Esto se debe a dos conceptos importantes:
- Los permisos de un registro siempre se evalúan según una combinación de permisos de nivel de objeto, nivel de campo y nivel de registro.
- Cuando los permisos de nivel de objeto entran en conflicto con los permisos de nivel de registro, siempre prevalecen los permisos más restrictivos.
- Los valores predeterminados de toda la organización especifican el nivel predeterminado de acceso que tienen los usuarios a los registros de otros usuarios.
- Las jerarquías de funciones garantizan que los gerentes tengan acceso a los mismos registros que sus subordinados. Cada función de la jerarquía representa un nivel de acceso a los datos que necesita un usuario o un grupo de usuarios.
- Las reglas de colaboración son excepciones automáticas de la configuración predeterminada de toda la organización para grupos de usuarios determinados para que puedan acceder a los registros que no poseen y que no pueden ver normalmente.
- La colaboración manual permite a los propietarios de los registros conceder permisos de lectura y modificación a los usuarios que no tienen acceso al registro de ningún otro modo.
- Los permisos de base de los usuarios sobre los objetos dependen de sus perfiles.
- Si el usuario tiene cualquier conjunto de permisos asignado, también se establecen los permisos básicos en combinación con el perfil.
- El acceso a registros que sean propiedad de un usuario se establece en primer lugar en los valores predeterminados para toda la organización.
- Si los valores predeterminados para toda la organización son inferiores a Public Read/Write (Lectura/escritura pública), podrá facilitar el acceso a determinadas funciones mediante la jerarquía de funciones.
- También puede usar las reglas de colaboración para ampliar el acceso a grupos de usuarios adicionales.
- Cada propietario de registros puede compartir de manera individual registros con otros usuarios gracias al botón Share (Compartir) del registro.
Ya hemos visto cómo configurar el acceso a nivel de objeto y a nivel de campo utilizando conjuntos de permisos y perfiles. Ahora analizaremos los detalles de los distintos controles de seguridad de nivel de registro existentes.
Colaboración en toda la organización
- ¿Quién es el usuario más restringido de este objeto?
- ¿Habrá alguna vez una instancia de este objeto que este usuario no pueda ver?
- ¿Habrá alguna vez una instancia de este objeto que este usuario no pueda modificar?
Dependiendo de las respuestas, podrá establecer el modelo de colaboración de dicho objeto con uno de los valores que se describe a continuación.
Private (Privado)Solo el propietario del registro y los usuarios que se encuentren por encima de esa función en la jerarquía podrán visualizar, modificar e informar sobre esos registros.
Public Read Only (Solo lectura pública)
Todos los usuarios pueden ver y crear informes de los registros; sin embargo, solo el propietario y los usuarios por encima de su función en la jerarquía podrán modificarlos.
Public Read/Write (Lectura/escritura pública)
Todos los usuarios pueden visualizar, modificar e informar sobre los registros.
Controlled by Parent (Controlado por principal)
Un usuario puede ver, modificar o eliminar un registro si puede realizar la misma acción en el objeto al que pertenece dicho registro.
Cuando el valor de colaboración de toda la organización para un objeto esté definido como Private (Privada) o Public Read Only (Sólo lectura pública), el administrador podrá otorgar a usuarios acceso adicional a registros configurando una jerarquía de funciones o definiendo reglas de colaboración. Las reglas de colaboración solo pueden usarse para conceder acceso adicional. Estas reglas no pueden usarse para restringir el acceso a registros más allá de lo especificado originalmente con los valores predeterminados de colaboración de toda la organización.
Como ejemplo, respondamos la lista de preguntas siguiente para el objeto Position (Puesto) en la aplicación Recruiting (Contratación).
Quién es el usuario más restringido de este objeto?Un miembro del perfil Empleado estándar. Lo único que puede hacer es visualizar un puesto.
¿Habrá alguna vez una instancia de este objeto que este usuario no pueda ver?
No. Aunque los valores de los campos de valores de salario mínimo y máximo están ocultos para los empleados estándar, podrán ver todos los registros de puestos.
¿Habrá alguna vez una instancia de este objeto que este usuario no pueda modificar?
Sí. Los empleados estándar no tienen permiso para modificar ningún registro de puesto.
Dado que respondimos "Sí" a la tercera pregunta, el modelo de colaboración del objeto Position (Puesto) debe configurarse con el valor Public Read Only (Sólo lectura pública). Repita el mismo ejercicio con los demás objetos de contratación para determinar los valores predeterminados de toda la organización adecuados para ellos. El perfil Standard Employee (Empleado estándar) es el usuario más restringido para cada objeto y habrá candidatos, solicitudes de empleo y registros de revisión que no podrán ver estos empleados concretos. En consecuencia, debe establecer el modelo de colaboración para los objetos Candidate (Candidato), Job Application (Solicitud de empleo) y Review (Revisión) como Private (Privado).
Configurar sus valores predeterminados de colaboración de toda la organización
- En Setup (Configuración), use el cuadro Quick Find (Búsqueda rápida) para buscar Sharing Settings (Configuración de colaboración) y seleccione Sharing Settings (Configuración de colaboración).
- Haga clic en Edit (Modificar) en el área de la configuración predeterminada de la organización. Recuerde que algunos objetos estándar usan distintas opciones predeterminadas de toda la organización. Entre las opciones predeterminadas de toda la organización personalizadas se incluyen Private (Privado), Public Read Only (Sólo lectura pública) o Public Read/Write (Lectura/escritura pública).
- Para cada objeto, seleccione el acceso interno predeterminado y el acceso externo predeterminado.
- Para desactivar el acceso automático de sus jerarquías, cancele la selección de Grant Access Using Hierarchies (Otorgar acceso con jerarquías) para cualquier objeto personalizado que no tenga un acceso predeterminado de Controlled by Parent (Controlado por principal).
Incluso cuando la opción Grant Access Using Hierarchies (Otorgar acceso con jerarquías) esté desactivada, determinados usuarios como, por ejemplo, aquellos con los permisos de objeto “View All” (“Ver todos”) y “Modify All” (“Modificar todos”) y los permisos del sistema “View All Data” (“Ver todos los datos”) y “Modify All Data” (“Modificar todos los datos”), seguirán teniendo acceso a los registros de los que no son propietarios.
Más información...
La colaboración gestionada por Apex permite a los desarrolladores compartir registros asociados con objetos personalizados de forma programática. Cuando use la colaboración gestionada por Apex con cualquier objeto personalizado, solo los usuarios con el permiso “Modify All Data” (“Modificar todos los datos”) podrán agregar o cambiar la colaboración de los registros del objeto personalizado, y el acceso de colaboración se mantendrá idéntico incluso si se modifica el propietario del registro. Para obtener más información, consulte Colaboración de Apex.