Volver al Blog

Cómo recuperar el acceso de administrador de Confluence a través de la base de datos - Guía de emergencia

2025-04-245 min de lectura

Considere este escenario: Es lunes por la mañana y un equipo necesita agregar un nuevo miembro a un espacio crucial de Confluence. ¿El problema? El único administrador acaba de comenzar unas vacaciones de dos semanas completamente desconectado. Para cualquiera en esta situación, el pánico podría apoderarse... hasta que recuerden tener acceso al servidor donde se ejecuta Confluence. Este escenario hipotético ilustra cuándo la siguiente solución técnica podría ser necesaria.

Descargo de responsabilidad importante: Este artículo se proporciona únicamente con fines educativos. Las técnicas descritas aquí solo deben usarse en situaciones de emergencia legítimas en las que tenga la autorización adecuada para acceder a la base de datos y modificar los permisos administrativos. El acceso o la modificación no autorizados de la base de datos pueden infringir:

  • Las políticas de seguridad y los términos de empleo de su organización
  • Los acuerdos de licencia de software con Atlassian
  • Las leyes aplicables de acceso a computadoras en su jurisdicción

Consulte siempre con su departamento de TI, equipo legal y revise las políticas de su organización antes de intentar cualquier modificación directa de la base de datos. El autor y este sitio web no asumen ninguna responsabilidad por el uso indebido de esta información o sus consecuencias.

Lo que necesita primero

Antes de comenzar, asegúrese de tener:

  • Acceso al servidor donde se ejecuta la base de datos de Confluence.
  • El nombre de usuario y la contraseña para conectarse a la base de datos de Confluence. (¡Pista! Consulte el archivo confluence.cfg.xml).
  • El nombre de usuario de Confluence que desea convertir en administrador.

Paso 1: Encuentre los detalles de su base de datos de Confluence

Confluence almacena la información de conexión de su base de datos en un archivo llamado confluence.cfg.xml. Este archivo se encuentra generalmente en el directorio 'home' de Confluence en su servidor (a menudo algo como /var/atlassian/application-data/confluence).

Encuentre el archivo:

Si conoce la ruta del directorio 'home' de Confluence, puede usar un comando como este (reemplace /path/to/confluence/home con la ruta real):

find /path/to/confluence/home -name \"confluence.cfg.xml\"

Si no está seguro de dónde se encuentra el directorio 'home' de Confluence, intente buscar desde el directorio raíz (esto puede llevar un tiempo) o navegue a un directorio principal probable (como /var/atlassian o /opt) y busque desde allí:

# Navegue primero a un directorio principal potencial, luego ejecute:
find . -name \"confluence.cfg.xml\"

Este comando busca el archivo en el directorio actual (.) y todos sus subdirectorios.

Lea el archivo:

Una vez que lo encuentre, abra confluence.cfg.xml. Busque líneas como estas:

<property name=\"hibernate.connection.url\">jdbc:postgresql://your-db-host:5432/confluence</property>
<property name=\"hibernate.connection.username\">confluenceuser</property>
<property name=\"hibernate.connection.password\">yourpassword</property>

Estas líneas le indican el tipo de base de datos (como PostgreSQL o MySQL), la dirección del servidor (your-db-host), el nombre de la base de datos, el nombre de usuario y la contraseña que necesita para conectarse.

Paso 2: Conéctese a la base de datos

Ahora, use los detalles que encontró para iniciar sesión en la base de datos.

Si es PostgreSQL:

psql -h your-db-host -U confluenceuser -d confluence

Si es MySQL:

mysql -h your-db-host -u confluenceuser -p confluence

Ingrese la contraseña cuando se le solicite.

Paso 3: Obtenga el ID de usuario y el ID del grupo de administradores

Necesita dos piezas de información de la base de datos: el ID del usuario y el ID del grupo de administradores.

Encuentre el ID del usuario (user_key):

Ejecute este comando SQL. Reemplace 'your-username' con el nombre de usuario real de Confluence que desea convertir en administrador:

SELECT user_key FROM cwd_user WHERE user_name = 'your-username';

Anote el user_key que le da (será un número).

Encuentre el ID del grupo de administradores:

Ejecute este comando SQL:

SELECT id FROM cwd_group WHERE group_name = 'confluence-administrators';

Anote el id que le da (este es el ID del grupo de administradores).

Paso 4: Agregue el usuario al grupo de administradores

Este es el paso crucial donde vincula al usuario con el grupo de administradores.

Encuentre el próximo ID disponible para el enlace:

Ejecute esto para ver el ID actual más alto en la tabla de membresía:

SELECT MAX(id) FROM cwd_membership;

Tome el número que le da y sume 1. Por ejemplo, si muestra 1000, usará 1001. Este será el ID único para el nuevo enlace.

Cree el enlace:

Ejecute el siguiente comando `INSERT`. **Reemplace cuidadosamente** `NEXT_MEMBERSHIP_ID` con el ID que acaba de calcular (por ejemplo, `1001`), `ADMIN_GROUP_ID` con el ID del grupo de administradores que encontró y `USER_KEY` con el ID del usuario que encontró. Además, reemplace `'your-username'` con el nombre de usuario real nuevamente.

INSERT INTO cwd_membership (id, parent_id, child_user_id, membership_type, group_type, parent_name, lower_parent_name, child_name, lower_child_name) 
VALUES (NEXT_MEMBERSHIP_ID, ADMIN_GROUP_ID, USER_KEY, 'GROUP_USER', 'GROUP', 'confluence-administrators', 'confluence-administrators', 'your-username', 'your-username');

Ejemplo:

-- ¡Asegúrese de usar los ID reales que encontró!
INSERT INTO cwd_membership (id, parent_id, child_user_id, membership_type, group_type, parent_name, lower_parent_name, child_name, lower_child_name) 
VALUES (1001, 4587522, 241106945, 'GROUP_USER', 'GROUP', 'confluence-administrators', 'confluence-administrators', 'jane.doe', 'jane.doe');

(Nota: Si recibe un error sobre columnas faltantes, su versión de Confluence podría ser diferente. Es posible que solo necesite `id`, `parent_id` y `child_user_id` en la declaración `INSERT`. Verifique la estructura de su tabla si es necesario).

Paso 5: Reinicie Confluence

El cambio no funcionará hasta que reinicie Confluence.

Opción 1: Usando systemd (común en Linux)

sudo systemctl restart confluence

Opción 2: Usando los scripts de Confluence

cd /path/to/confluence/bin  # Vaya al directorio bin de Confluence
./shutdown.sh
./startup.sh             # Espere un poco después de apagar antes de iniciar

Una vez que Confluence vuelva a estar en línea, ¡el usuario que seleccionó debería poder iniciar sesión con derechos de administrador completos!

Consejos rápidos y advertencias

  • ¡Haga una copia de seguridad primero! En serio, siempre haga una copia de seguridad de su base de datos antes de cambiar algo directamente.
  • La base de datos importa: Los comandos SQL podrían necesitar pequeños ajustes si usa Oracle o SQL Server en lugar de PostgreSQL/MySQL.
  • Verifique los nombres: Si los comandos fallan, verifique los nombres de las tablas (cwd_user, cwd_group, cwd_membership) ya que podrían variar ligeramente entre las versiones de Confluence.
  • Tenga cuidado: Está omitiendo las comprobaciones de seguridad normales. Asegúrese absolutamente de que está otorgando derechos de administrador a la cuenta de usuario correcta.
  • Revise sus políticas: Esta técnica solo debe usarse en situaciones de emergencia cuando tenga la autorización adecuada. Muchas organizaciones tienen políticas sobre el acceso a la base de datos y los derechos de administrador. Asegúrese siempre de seguir las reglas de gobierno de TI de su empresa y de tener la aprobación adecuada antes de realizar estos cambios.
  • Documente sus acciones: Si utiliza este método, documente lo que hizo, cuándo y por qué. La transparencia es clave al realizar cambios a nivel de sistema como este.

Conclusión

Perder el acceso de administrador a su instancia de Confluence puede ser una situación estresante, especialmente cuando el trabajo crítico depende de ella. Si bien el método descrito en esta guía debe considerarse como último recurso, proporciona a los administradores de TI una solución de emergencia viable cuando existe la autorización adecuada. Recuerde que la prevención es siempre mejor que la cura; implementar una gestión adecuada del acceso de administrador y la documentación puede ayudar a evitar estas situaciones por completo.

Preguntas frecuentes

¿Es seguro modificar la base de datos de Confluence directamente?

Las modificaciones directas de la base de datos siempre conllevan riesgos y solo deben ser realizadas por administradores de bases de datos calificados con la autorización adecuada, después de crear una copia de seguridad completa. Este enfoque solo debe usarse en situaciones de emergencia cuando no existan otras opciones.

¿Funcionará este método para Confluence alojado en la nube?

No, este método solo funciona para instancias de Confluence autoalojadas donde tiene acceso directo a la base de datos subyacente. Para Confluence alojado en la nube, póngase en contacto con el soporte de Atlassian para conocer las opciones de recuperación del acceso de administrador.

¿Existen formas alternativas de recuperar el acceso de administrador a Confluence?

Sí, las alternativas incluyen: 1) Contactar a los administradores existentes, 2) Usar el modo de recuperación de Confluence si está habilitado, 3) Restaurar desde una copia de seguridad donde tenía acceso de administrador, o 4) Contactar al soporte de Atlassian para obtener orientación específica para su situación.