Para encontrar usuarios con exceso de permisos en Salesforce, haga una lista de quién tiene los permisos poderosos (View All Data, Modify All Data, Manage Users, Export Reports), quién no ha iniciado sesión recientemente y cuyo acceso proviene de perfiles antiguos o clonados. Luego compare el acceso de cada persona con lo que requiere su trabajo. Un administrador puede hacer una revisión de acceso de usuarios de Salesforce como esta en una tarde, con Setup y unas cuantas consultas SOQL.
Esta guía recorre la revisión en orden. Usa Ids de registro y conteos, no nombres de personas, para que pueda ejecutarla con seguridad y compartir los resultados.
Por qué se acumula el exceso de permisos
Nadie se propone dar demasiados permisos a una org. Sucede en pequeños pasos. Un nuevo empleado necesita "solo ver" un informe, y recibe un perfil más grande. Una coordinadora cubre a un colega con licencia y conserva el acceso. Un consultor clona el perfil System Administrator para un proyecto y nadie lo elimina.
Para las organizaciones sin fines de lucro y de salud esto importa porque la misma org suele contener datos de donantes, notas de casos e información de salud. Nuestra guía sobre permisos de Salesforce y PHI explica por qué unos pocos permisos pueden saltarse por completo sus reglas de uso compartido.
Paso 1: Cuente sus usuarios activos por perfil
Empiece con el panorama general. En la Developer Console, en el editor de consultas de Workbench o en cualquier herramienta SOQL, ejecute:
SELECT ProfileId, COUNT(Id) FROM User WHERE IsActive = true GROUP BY ProfileId
Luego abra Setup, busque Profiles en Quick Find y relacione cada ProfileId con su perfil. Marque dos cosas: los perfiles con un número sorprendente de usuarios y cualquier perfil que parezca clonado de System Administrator.
Paso 2: Encuentre quién tiene los permisos poderosos
Estos permisos de sistema se saltan el uso compartido normal y son lo primero que debe revisar.
- View All Data
- Modify All Data
- Manage Users
- Export Reports
- Customize Application
- Author Apex
El objeto PermissionSet tiene un campo booleano para cada permiso de sistema, y los perfiles tienen un conjunto de permisos equivalente detrás. Salesforce lo documenta en su referencia del objeto PermissionSet. Para ver a todos los usuarios activos con Modify All Data, ya sea mediante un perfil o un conjunto de permisos:
SELECT AssigneeId, PermissionSet.IsOwnedByProfile, PermissionSetGroupId
FROM PermissionSetAssignment
WHERE PermissionSet.PermissionsModifyAllData = true
AND Assignee.IsActive = true
Cambie el nombre del campo a PermissionsViewAllData, PermissionsManageUsers o PermissionsExportReport para revisar los demás. IsOwnedByProfile = true significa que el acceso proviene del perfil del usuario. Salesforce señala que, como los perfiles tienen sus propios conjuntos de permisos, PermissionSetAssignment es el objeto que debe usar para ver juntos el acceso de perfiles y de conjuntos de permisos. Consultar PermissionSet requiere derechos de nivel administrador, y los grupos de conjuntos de permisos pueden hacer que los resultados se vean distintos, así que ejecútela primero en un sandbox y verifique a mano algunos resultados.
Cuente los Ids devueltos. Para la mayoría de las organizaciones, el número correcto de personas con Modify All Data es de una o dos.
Paso 3: Encuentre usuarios que quizás no necesiten acceso
Las cuentas sin uso son riesgosas porque nadie las vigila.
SELECT COUNT() FROM User WHERE IsActive = true AND LastLoginDate < LAST_N_DAYS:90
Ejecute una segunda consulta con LastLoginDate = null para las cuentas que nunca iniciaron sesión. Elija un umbral que se ajuste a su equipo. Los voluntarios de temporada y los miembros de la junta pueden iniciar sesión muy rara vez y aun así ser legítimos, así que trate la lista como preguntas por hacer, no como una lista de desactivación.
Para cada Id, pregunte al gerente del usuario si la persona todavía necesita Salesforce. Si no, siga su lista de verificación de baja de usuarios.
Paso 4: Revise los conjuntos de permisos
Abra Setup, busque Permission Sets y fíjese en:
- Conjuntos de permisos con nombres vagos como "Extra Access" o "Temp"
- Conjuntos con una lista larga de permisos de sistema
- Conjuntos asignados a muchos usuarios pero creados para una sola persona
- Conjuntos que no están asignados a nadie
Abra un conjunto y elija Manage Assignments para ver quién lo tiene. Si usa grupos de conjuntos de permisos, revise también los grupos, ya que un grupo puede incluir en silencio un conjunto poderoso.
Dos funciones ayudan aquí. Salesforce admite la expiración de asignaciones en conjuntos y grupos de permisos, lo cual es adecuado para el acceso temporal. Los conjuntos de permisos de silenciamiento (muting permission sets) le permiten quitar un solo permiso de un grupo sin reconstruirlo. Si todavía depende mucho de los perfiles, consulte conjuntos de permisos vs. perfiles.
Paso 5: Revise los objetos y campos sensibles al uso compartido
Los permisos de sistema no son el único riesgo. Revise también:
- Permisos de objeto: quién tiene View All o Modify All en objetos sensibles como casos, planes de atención o donaciones.
- Seguridad a nivel de campo: quién puede leer campos como diagnóstico, ingresos o identificaciones oficiales.
- Usuarios de integración y API: las cuentas que usan herramientas como formularios o middleware suelen tener acceso amplio y credenciales de larga duración.
- Usuarios invitados y de comunidad: confirme que solo lleguen a lo que deben.
Paso 6: Decida, documente y corrija
Arme una tabla sencilla con una fila por Id:
| Columna | Contenido de ejemplo |
|---|---|
| User Id | El Id 005 |
| Permiso encontrado | Modify All Data mediante el perfil |
| Motivo del negocio | Administrador / ninguno conocido |
| Decisión | Mantener, reducir, quitar |
| Responsable y fecha | Quién aprobó y cuándo |
Haga los cambios en pasos pequeños. Quite un permiso, pida a la persona que pruebe sus tareas normales y continúe. Conserve la tabla, porque los auditores y los financiadores suelen pedir evidencia de que usted revisa el acceso con regularidad. Nuestra lista de verificación SOC 2 para Salesforce describe cómo debe verse esa evidencia.
Conviértalo en un hábito
Una revisión única se desvanece rápido. Elija un calendario, como trimestral, y vuelva a ejecutar las mismas consultas. Agregue una regla: todo conjunto de permisos nuevo con un permiso de sistema necesita la aprobación de una segunda persona.
Hacer esto a mano es donde muchos equipos se estancan. Apex Security Check de Troppus es un producto nativo de Salesforce creado para analizar el riesgo de acceso, encontrar el exceso de permisos y dar visibilidad lista para auditoría, de modo que la revisión no dependa de que alguien recuerde ejecutar las consultas.
Preguntas frecuentes
¿Qué cuenta como exceso de permisos?
Un usuario tiene más acceso del que requiere su trabajo actual. La prueba es el trabajo, no la antigüedad. Los directores y ejecutivos suelen tener exceso de permisos porque era más fácil decir que sí.
¿Con qué frecuencia debemos hacer una revisión de acceso de usuarios de Salesforce?
El ritmo trimestral es una elección común, además de una revisión cada vez que alguien cambia de rol o se va. Elija un ritmo que de verdad vaya a mantener.
¿Puedo ejecutar estas consultas sin la Developer Console?
Sí. Sirve cualquier herramienta que ejecute SOQL, como Workbench o la Salesforce CLI. Necesita permiso para ver los datos de configuración.
¿Quitar un permiso rompe informes y automatizaciones?
Puede ser. Los informes se ejecutan con el acceso de quien los ve, y algunas automatizaciones se ejecutan como un usuario específico. Pruebe en un sandbox y haga los cambios uno a la vez.
¿Debo mirar los nombres para decidir a quién conservar?
En la primera pasada trabaje con Ids y roles, y lleve la lista a los gerentes que conocen a las personas. Así mantiene los datos personales fuera de las hojas de cálculo y los chats.
Tenga una imagen clara de quién puede ver qué
Si quiere una segunda opinión sobre su acceso, reserve una revisión gratuita de Salesforce. Revisaremos con usted sus permisos de mayor riesgo y le daremos una lista priorizada de correcciones.
