←Terug naar het blog

Hoe Confluence Admin Toegang Terug te Krijgen via de Database - Noodhandleiding

2025-04-24‱5 minuten leestijd

Overweeg dit scenario: Het is maandagochtend en een team moet een nieuw lid toevoegen aan een cruciale Confluence-ruimte. Het probleem? De enige admin is net aan een tweeweekse vakantie begonnen, volledig offline. Voor iedereen in deze situatie kan paniek toeslaan... totdat ze zich herinneren dat ze toegang hebben tot de server waarop Confluence draait. Dit hypothetische scenario illustreert wanneer de volgende technische oplossing nodig kan zijn.

Belangrijke disclaimer: Dit artikel is uitsluitend bedoeld voor educatieve doeleinden. De hierin beschreven technieken mogen alleen worden gebruikt in legitieme noodsituaties waarbij u de juiste autorisatie hebt om toegang te krijgen tot de database en administratieve rechten te wijzigen. Ongeautoriseerde database-toegang of -wijziging kan het volgende schenden:

  • De beveiligingsbeleidslijnen en arbeidsvoorwaarden van uw organisatie
  • Softwarelicentieovereenkomsten met Atlassian
  • Toepasselijke wetten inzake computergebruik in uw rechtsgebied

Raadpleeg altijd uw IT-afdeling, juridische afdeling en de beleidslijnen van uw organisatie voordat u directe databaseaanpassingen probeert uit te voeren. De auteur en deze website aanvaarden geen enkele aansprakelijkheid voor enig misbruik van deze informatie of de gevolgen daarvan.

Wat u eerst nodig hebt

Zorg ervoor dat u het volgende hebt voordat u begint:

  • Toegang tot de server waarop de database van Confluence draait.
  • De gebruikersnaam en het wachtwoord om verbinding te maken met de Confluence-database. (Hint: Controleer het bestand confluence.cfg.xml!)
  • De Confluence-gebruikersnaam die u een admin wilt maken.

Stap 1: Vind uw Confluence Databasegegevens

Confluence slaat zijn databaseverbindingsgegevens op in een bestand genaamd confluence.cfg.xml. Dit bestand bevindt zich meestal in de 'home'-directory van Confluence op uw server (vaak iets als /var/atlassian/application-data/confluence).

Vind het bestand:

Als u het pad naar de Confluence home directory weet, kunt u een commando zoals dit gebruiken (vervang /path/to/confluence/home door het daadwerkelijke pad):

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

Als u niet zeker weet waar de Confluence home directory zich bevindt, probeer dan te zoeken vanaf de hoofdmap (dit kan even duren) of navigeer naar een waarschijnlijke bovenliggende map (zoals /var/atlassian of /opt) en zoek vanaf daar:

# Navigeer eerst naar een mogelijke bovenliggende map en voer dan uit:
find . -name \"confluence.cfg.xml\"

Dit commando zoekt in de huidige map (.) en al zijn submappen naar het bestand.

Lees het bestand:

Zodra u het hebt gevonden, opent u confluence.cfg.xml. Zoek naar regels zoals deze:

<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>

Deze regels vertellen u het databasetype (zoals PostgreSQL of MySQL), het serveradres (your-db-host), de databasenaam, de gebruikersnaam en het wachtwoord dat u nodig hebt om verbinding te maken.

Stap 2: Maak verbinding met de database

Gebruik nu de gevonden gegevens om in te loggen op de database.

Als het PostgreSQL is:

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

Als het MySQL is:

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

Voer het wachtwoord in wanneer daarom wordt gevraagd.

Stap 3: Haal de gebruikers-ID en de admin-groeps-ID op

U hebt twee gegevens uit de database nodig: de ID voor de gebruiker en de ID voor de admin-groep.

Vind de ID van de gebruiker (user_key):

Voer dit SQL-commando uit. Vervang 'your-username' door de daadwerkelijke Confluence-gebruikersnaam die u een admin wilt maken:

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

Noteer de user_key die het geeft (het zal een nummer zijn).

Vind de ID van de admin-groep:

Voer dit SQL-commando uit:

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

Noteer de id die het geeft (dit is de admin-groeps-ID).

Stap 4: Voeg de gebruiker toe aan de admin-groep

Dit is de cruciale stap waarbij u de gebruiker koppelt aan de admin-groep.

Vind de volgende beschikbare ID voor de koppeling:

Voer dit uit om de hoogste huidige ID in de lidmaatschapstabel te zien:

SELECT MAX(id) FROM cwd_membership;

Neem het getal dat het geeft en tel er 1 bij op. Als het bijvoorbeeld 1000 weergeeft, gebruikt u 1001. Dit wordt de unieke ID voor de nieuwe koppeling.

Maak de koppeling:

Voer het volgende `INSERT`-commando uit. **Vervang zorgvuldig** `NEXT_MEMBERSHIP_ID` door de ID die u zojuist hebt berekend (bijv. `1001`), `ADMIN_GROUP_ID` door de admin-groeps-ID die u hebt gevonden, en `USER_KEY` door de gebruikers-ID die u hebt gevonden. Vervang ook `'your-username'` opnieuw door de daadwerkelijke gebruikersnaam.

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');

Voorbeeld:

-- Zorg ervoor dat u de daadwerkelijke ID's gebruikt die u hebt gevonden!
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');

(Opmerking: Als u een fout krijgt over ontbrekende kolommen, kan uw Confluence-versie anders zijn. Mogelijk hebt u alleen `id`, `parent_id` en `child_user_id` nodig in de `INSERT`-instructie. Controleer indien nodig uw tabelstructuur.)

Stap 5: Confluence opnieuw opstarten

De wijziging werkt pas als u Confluence opnieuw opstart.

Optie 1: Met systemd (gebruikelijk op Linux)

sudo systemctl restart confluence

Optie 2: Met de scripts van Confluence

cd /path/to/confluence/bin  # Ga naar de bin-directory van Confluence
./shutdown.sh
./startup.sh             # Wacht even na het afsluiten voordat u start

Zodra Confluence weer actief is, zou de door u geselecteerde gebruiker moeten kunnen inloggen met volledige beheerdersrechten!

Snelle tips & waarschuwingen

  • Maak eerst een back-up! Serieus, maak altijd een back-up van uw database voordat u iets direct wijzigt.
  • Database is belangrijk: De SQL-commando's moeten mogelijk kleine aanpassingen ondergaan als u Oracle of SQL Server gebruikt in plaats van PostgreSQL/MySQL.
  • Controleer namen: Als commando's mislukken, controleer dan de tabelnamen (cwd_user, cwd_group, cwd_membership) opnieuw, aangezien deze enigszins kunnen verschillen tussen Confluence-versies.
  • Wees voorzichtig: U omzeilt normale veiligheidscontroles. Zorg er absoluut voor dat u beheerdersrechten toekent aan het juiste gebruikersaccount.
  • Controleer uw beleid: Deze techniek mag alleen worden gebruikt in noodsituaties wanneer u de juiste autorisatie hebt. Veel organisaties hebben beleid met betrekking tot database-toegang en beheerdersrechten. Zorg er altijd voor dat u de IT-governance regels van uw bedrijf volgt en de juiste goedkeuring hebt voordat u deze wijzigingen aanbrengt.
  • Documenteer uw acties: Als u deze methode gebruikt, documenteer dan wat u hebt gedaan, wanneer en waarom. Transparantie is essentieel bij het aanbrengen van systeemwijzigingen zoals deze.

Conclusie

Het verliezen van admin-toegang tot uw Confluence-instantie kan een stressvolle situatie zijn, vooral wanneer kritiek werk ervan afhankelijk is. Hoewel de methode die in deze handleiding wordt beschreven als laatste redmiddel moet worden beschouwd, biedt het IT-beheerders een haalbare noodoplossing wanneer de juiste autorisatie aanwezig is. Onthoud dat preventie altijd beter is dan genezen; het implementeren van een goed beheer van admin-toegang en documentatie kan helpen om deze situaties volledig te voorkomen.

Veelgestelde Vragen

Is het veilig om de Confluence-database rechtstreeks te wijzigen?

Directe databaseaanpassingen brengen altijd risico's met zich mee en mogen alleen worden uitgevoerd door gekwalificeerde databasebeheerders met de juiste autorisatie, na het maken van een volledige back-up. Deze aanpak mag alleen worden gebruikt in noodsituaties wanneer er geen andere opties zijn.

Werkt deze methode voor cloud-gehoste Confluence?

Nee, deze methode werkt alleen voor self-hosted Confluence-instanties waarbij u directe toegang hebt tot de onderliggende database. Neem voor cloud-gehoste Confluence contact op met Atlassian Support voor opties voor het herstellen van admin-toegang.

Zijn er alternatieve manieren om admin-toegang tot Confluence te herwinnen?

Ja, alternatieven zijn onder meer: 1) Contact opnemen met bestaande admins, 2) De Confluence herstelmodus gebruiken indien ingeschakeld, 3) Herstellen vanaf een back-up waarbij u admin-toegang had, of 4) Contact opnemen met Atlassian Support voor begeleiding specifiek voor uw situatie.