Zurück zum Blog

So erhalten Sie den Confluence-Adminzugriff über die Datenbank zurück – Notfallleitfaden

2025-04-245 Minuten Lesezeit

Stellen Sie sich dieses Szenario vor: Es ist Montagmorgen und ein Team muss ein neues Mitglied zu einem wichtigen Confluence-Bereich hinzufügen. Das Problem? Der einzige Administrator hat gerade einen zweiwöchigen Urlaub angetreten, komplett offline. Für jeden in dieser Situation könnte Panik aufkommen... bis sie sich daran erinnern, Zugriff auf den Server zu haben, auf dem Confluence läuft. Dieses hypothetische Szenario veranschaulicht, wann die folgende technische Lösung notwendig sein könnte.

Wichtiger Haftungsausschluss: Dieser Artikel dient ausschließlich Bildungszwecken. Die hier beschriebenen Techniken sollten nur in legitimen Notfallsituationen angewendet werden, in denen Sie über die entsprechende Berechtigung zum Zugriff auf die Datenbank und zur Änderung von Administratorberechtigungen verfügen. Unbefugter Datenbankzugriff oder -änderungen können verstoßen gegen:

  • Die Sicherheitspraktiken und Anstellungsbedingungen Ihres Unternehmens
  • Lizenzvereinbarungen mit Atlassian
  • Anwendbare Gesetze zum Computerzugriff in Ihrer Gerichtsbarkeit

Konsultieren Sie immer Ihre IT-Abteilung, Ihr Rechtsteam und überprüfen Sie die Richtlinien Ihres Unternehmens, bevor Sie direkte Datenbankänderungen vornehmen. Der Autor und diese Website übernehmen keine Haftung für Missbrauch dieser Informationen oder deren Folgen.

Was Sie zuerst benötigen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Zugriff auf den Server, auf dem die Confluence-Datenbank läuft.
  • Benutzername und Passwort für die Verbindung zur Confluence-Datenbank. (Hinweis: Überprüfen Sie die Datei confluence.cfg.xml!)
  • Der Confluence-Benutzername, den Sie zum Administrator machen möchten.

Schritt 1: Ermitteln Sie Ihre Confluence-Datenbankdetails

Confluence speichert seine Datenbankverbindungsinformationen in einer Datei namens confluence.cfg.xml. Diese Datei befindet sich normalerweise im Confluence-'Home'-Verzeichnis auf Ihrem Server (oft etwas wie /var/atlassian/application-data/confluence).

Finden Sie die Datei:

Wenn Sie den Pfad zum Confluence-Home-Verzeichnis kennen, können Sie einen Befehl wie diesen verwenden (ersetzen Sie /path/to/confluence/home durch den tatsächlichen Pfad):

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

Wenn Sie sich nicht sicher sind, wo sich das Confluence-Home-Verzeichnis befindet, versuchen Sie, vom Stammverzeichnis aus zu suchen (dies kann eine Weile dauern) oder navigieren Sie zu einem wahrscheinlichen übergeordneten Verzeichnis (wie /var/atlassian oder /opt) und suchen Sie von dort aus:

# Navigieren Sie zuerst zu einem potenziellen übergeordneten Verzeichnis und führen Sie dann aus:
find . -name \"confluence.cfg.xml\"

Dieser Befehl durchsucht das aktuelle Verzeichnis (.) und alle seine Unterverzeichnisse nach der Datei.

Lesen Sie die Datei:

Sobald Sie sie gefunden haben, öffnen Sie confluence.cfg.xml. Suchen Sie nach Zeilen wie diesen:

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

Diese Zeilen geben Ihnen den Datenbanktyp (wie PostgreSQL oder MySQL), die Serveradresse (your-db-host), den Datenbanknamen, den Benutzernamen und das Passwort, die Sie zum Verbinden benötigen.

Schritt 2: Stellen Sie eine Verbindung zur Datenbank her

Melden Sie sich nun mit den gefundenen Details bei der Datenbank an.

Wenn es PostgreSQL ist:

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

Wenn es MySQL ist:

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

Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.

Schritt 3: Rufen Sie die Benutzer-ID und die Admin-Gruppen-ID ab

Sie benötigen zwei Informationen aus der Datenbank: die ID für den Benutzer und die ID für die Admin-Gruppe.

Finden Sie die Benutzer-ID (user_key):

Führen Sie diesen SQL-Befehl aus. Ersetzen Sie 'your-username' durch den tatsächlichen Confluence-Benutzernamen, den Sie zum Administrator machen möchten:

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

Notieren Sie sich den user_key, den er angibt (es wird eine Zahl sein).

Finden Sie die Admin-Gruppen-ID:

Führen Sie diesen SQL-Befehl aus:

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

Notieren Sie sich die id, die er angibt (dies ist die Admin-Gruppen-ID).

Schritt 4: Fügen Sie den Benutzer zur Admin-Gruppe hinzu

Dies ist der entscheidende Schritt, bei dem Sie den Benutzer mit der Admin-Gruppe verknüpfen.

Finden Sie die nächste verfügbare ID für die Verknüpfung:

Führen Sie dies aus, um die höchste aktuelle ID in der Mitgliedschaftstabelle anzuzeigen:

SELECT MAX(id) FROM cwd_membership;

Nehmen Sie die angezeigte Zahl und addieren Sie 1. Wenn beispielsweise 1000 angezeigt wird, verwenden Sie 1001. Dies wird die eindeutige ID für die neue Verknüpfung sein.

Erstellen Sie die Verknüpfung:

Führen Sie den folgenden `INSERT`-Befehl aus. **Ersetzen Sie sorgfältig** `NEXT_MEMBERSHIP_ID` durch die gerade berechnete ID (z. B. `1001`), `ADMIN_GROUP_ID` durch die gefundene Admin-Gruppen-ID und `USER_KEY` durch die gefundene Benutzer-ID. Ersetzen Sie außerdem `'your-username'` erneut durch den tatsächlichen Benutzernamen.

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

Beispiel:

-- Stellen Sie sicher, dass Sie die tatsächlichen gefundenen IDs verwenden!
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');

(Hinweis: Wenn Sie eine Fehlermeldung über fehlende Spalten erhalten, ist Ihre Confluence-Version möglicherweise anders. Möglicherweise benötigen Sie nur `id`, `parent_id` und `child_user_id` in der `INSERT`-Anweisung. Überprüfen Sie bei Bedarf Ihre Tabellenstruktur.)

Schritt 5: Starten Sie Confluence neu

Die Änderung wird erst wirksam, wenn Sie Confluence neu starten.

Option 1: Verwendung von systemd (üblich unter Linux)

sudo systemctl restart confluence

Option 2: Verwendung der Confluence-Skripte

cd /path/to/confluence/bin  # Wechseln Sie in das bin-Verzeichnis von Confluence
./shutdown.sh
./startup.sh             # Warten Sie nach dem Herunterfahren eine Weile, bevor Sie starten

Sobald Confluence wieder hochgefahren ist, sollte der von Ihnen ausgewählte Benutzer sich mit vollen Administratorrechten anmelden können!

Schnelle Tipps & Warnungen

  • Sichern Sie zuerst! Ernsthaft, sichern Sie immer Ihre Datenbank, bevor Sie etwas direkt ändern.
  • Datenbank ist wichtig: Die SQL-Befehle müssen möglicherweise geringfügig angepasst werden, wenn Sie Oracle oder SQL Server anstelle von PostgreSQL/MySQL verwenden.
  • Namen überprüfen: Wenn Befehle fehlschlagen, überprüfen Sie die Tabellennamen (cwd_user, cwd_group, cwd_membership) sorgfältig, da diese zwischen Confluence-Versionen leicht variieren können.
  • Seien Sie vorsichtig: Sie umgehen normale Sicherheitsprüfungen. Stellen Sie absolut sicher, dass Sie dem richtigen Benutzerkonto Administratorrechte gewähren.
  • Überprüfen Sie Ihre Richtlinien: Diese Technik sollte nur in Notfallsituationen angewendet werden, wenn Sie über die entsprechende Berechtigung verfügen. Viele Unternehmen haben Richtlinien für den Datenbankzugriff und Administratorrechte. Stellen Sie immer sicher, dass Sie die IT-Governance-Regeln Ihres Unternehmens befolgen und die entsprechende Genehmigung haben, bevor Sie diese Änderungen vornehmen.
  • Dokumentieren Sie Ihre Aktionen: Wenn Sie diese Methode verwenden, dokumentieren Sie, was Sie wann und warum getan haben. Transparenz ist der Schlüssel bei systemweiten Änderungen wie dieser.

Fazit

Der Verlust des Adminzugriffs auf Ihre Confluence-Instanz kann eine stressige Situation sein, insbesondere wenn kritische Arbeiten davon abhängen. Obwohl die in diesem Leitfaden beschriebene Methode als letzter Ausweg betrachtet werden sollte, bietet sie IT-Administratoren eine praktikable Notfalllösung, wenn die entsprechende Berechtigung vorliegt. Denken Sie daran, dass Prävention immer besser ist als Heilung. Die Implementierung eines ordnungsgemäßen Admin-Zugriffsmanagements und einer ordnungsgemäßen Dokumentation kann helfen, diese Situationen vollständig zu vermeiden.

Häufig gestellte Fragen

Ist es sicher, die Confluence-Datenbank direkt zu ändern?

Direkte Datenbankänderungen bergen immer Risiken und sollten nur von qualifizierten Datenbankadministratoren mit entsprechender Berechtigung und nach Erstellung einer vollständigen Sicherung durchgeführt werden. Dieser Ansatz sollte nur in Notfallsituationen verwendet werden, wenn keine anderen Optionen bestehen.

Funktioniert diese Methode für Cloud-gehostetes Confluence?

Nein, diese Methode funktioniert nur für selbst gehostete Confluence-Instanzen, bei denen Sie direkten Zugriff auf die zugrunde liegende Datenbank haben. Für Cloud-gehostetes Confluence wenden Sie sich an den Atlassian-Support, um Optionen zur Wiederherstellung des Adminzugriffs zu erhalten.

Gibt es alternative Möglichkeiten, den Adminzugriff auf Confluence wiederherzustellen?

Ja, Alternativen sind: 1) Kontaktaufnahme mit bestehenden Administratoren, 2) Verwendung des Confluence-Wiederherstellungsmodus, falls aktiviert, 3) Wiederherstellung aus einer Sicherung, bei der Sie Adminzugriff hatten, oder 4) Kontaktaufnahme mit dem Atlassian-Support für an Ihre Situation angepasste Anleitungen.