Skip to content
Work
ENDE
Let's talk→
Let's talk→
Work
Let's talk→
Language
ENDE

SERVICES

All ServicesAI & Machine LearningSoftware DevelopmentCloud & DevOpsIoTProduct Strategy & ManagementUX & UI DesignTalent SolutionsIndustries

WORKSHOPS

AI Discovery WorkshopSoftware Architecture WorkshopCloud Architecture WorkshopFree UX-AuditBuild-vs-Buy-Bewertung
© 2026 iits-consulting.
  • Legal Notice
  • Privacy Policy
  • Terms & Conditions
  1. Blog
  2. /Cloud & DevOps

PowerDNS-Admin — Password vergessen?

Ihr habt euer PowerDNS Admin Password vergessen, was nun? Wir zeigen euch wie ihr die Kontrolle über PowerDNS zurückbekommt

By Artem Lajko · February 13, 2025 · 3 min read

Share
Close-up of a screen showing HTML and CSS source code including a login form element, an "Authentication Failed" error message, a saml-auth-status element, and a window.top.location redirect to /php/login.php.

On this page

  • Was ist PowerDNS-Admin?
  • Beziehung zwischen PowerDNS-Admin und PowerDNS Server
  • Als Docker-Container ausgeführen
  • Vergessen Sie Ihr Passwort, machen Sie sich keine Sorgen!
  • Referenzen:

Built by people who do this for a living

Let's talk→

Was ist PowerDNS-Admin?

PowerDNS-Admin ist eine webbasierte Schnittstelle zur Verwaltung des PowerDNS DNS-Servers. Es ermöglicht Benutzern, DNS-Zonen und -Einträge über eine benutzerfreundliche Weboberfläche zu verwalten. Es ist in Python geschrieben, verwendet das Flask-Framework und eine SQL-Datenbank, um Daten zu speichern. In einer Kubernetes-Umgebung kann PowerDNS-Admin verwendet werden, um die DNS-Einträge für einen Cluster und seine Ressourcen über ExternalDNS zu verwalten.

Beziehung zwischen PowerDNS-Admin und PowerDNS Server

Im folgenden Diagramm seht Ihr, dass der PowerDNS-Admin die API vom PowerDNS-Server über einen geheimen Schlüssel aufruft (siehe roter Kasten). Der geheime Schlüssel wird in der PowerDNS-Serverkonfiguration definiert.

Als Docker-Container ausgeführen

Wenn Ihr PowerDNS-Admin als Docker-Container ausführt, erstellt Docker ein Volume auf dem Hostsystem und erstellt eine Sqlite3-Datenbank. Wenn Ihr euch dann zum ersten Mal in der PowerDNS-Admin-UI anmeldet, müsst Ihr einen neuen Benutzer erstellen, dieser Benutzer erhält die Admin-Rolle.

Vergessen Sie Ihr Passwort, machen Sie sich keine Sorgen!

Keine Panik, da Sqlite3 eine dateibasierte Datenbank ist und das Linux-Rechtekonzept gilt, können die Daten leicht manipuliert werden.

1. Herstellen einer Verbindung dem System auf dem PowerDNS-Admin-Container wird ausgeführt:

#use ssh to connect to your vm like:
ssh exampleuser@10.0.0.17

2. Dann listet die volumes auf und überprüft sie:

Bash / Shell
#list the docker volumes
docker volume ls

#Similar output like:
DRIVER    VOLUME NAME
local     1a6bf52ae2edfeaa41d662ec674d026e348a1ed62491742923bf52ae22ec674e
local     17fc48e354723bf52ae2edfe17fc48e354723bf5ec674d026e348a1ed62e2edf
local     powerdns-admin

#inspect the docker volume from the powerdns-admin
docker volume inspect powerdns-admin

#Similar Output like:
[
    {
        "CreatedAt": "2023-01-21T10:39:18+01:00",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "powerdns-admin",
            "com.docker.compose.volume": "pdns-admin"
        },
        "Mountpoint": "/var/lib/docker/volumes/powerdns-admin/_data",
        "Name": "powerdns-admin",
        "Options": null,
        "Scope": "local"
    }
]

3. Verbindung zur Sqlite3-Datenbank herstellen:

Bash / Shell
#Connect to the sqlite3 powerdns-admin database
sqlite3 /var/lib/docker/volumes/powerdns-admin/_data/powerdns-admin.db

4. Tabelle anzeigen:

sqlite> .tables

#Similar output like:
account                 domain_apikey           history
account_user            domain_setting          role
alembic_version         domain_template         setting
apikey                  domain_template_record  user
domain                  domain_user

5. Schema der Benutzertabelle anzeigen:

sqlite> PRAGMA table_info(user);

#Similar output like:
0|id|INTEGER|1||1
1|username|VARCHAR(64)|0||0
2|password|VARCHAR(64)|0||0
3|firstname|VARCHAR(64)|0||0
4|lastname|VARCHAR(64)|0||0
5|email|VARCHAR(128)|0||0
6|otp_secret|VARCHAR(16)|0||0
7|role_id|INTEGER|0||0
8|confirmed|BOOLEAN|1||0

6. Inhalt der Tabelle role aneigen:

SQL
sqlite> select * from role;

#Similar output like:
1|Administrator|Administrator
2|User|User
3|Operator|Operator

7. Einen neuen Benutzer mit bcrypt-Hash erstellen:

sqlite> INSERT INTO user (id, username, password, firstname, lastname, email, otp_secret, role_id, confirmed)
VALUES (50, 'artemla', '$2a$12$hx8Qcuo2vq0xdMhFhzLAY********', 'Artem', 'La', 'artemla@showcase.de', '', 1, 0);

Du kannst sehen, dass ich den Benutzer mit der Rolle ID1 (Administrator|Administrator) eingefügt habe.

8. Überprüfen, ob der neue Benutzer erstellt wurde:

SQL
sqlite> select * from user;

#Similar output like:
1|admin|$2b$12$HpYpbwpuqlZ.ixfu/hvbI.Rk********|admin|admin|admin@lab.de||1|0
50|artemla|$2a$12$hx8Qcuo2vq0xdMhFhzLAY********|Artem|La|artemla@showcase.de||1|0

9. Meldet euch mit dem neuen Benutzer bei PowerDNS-Admin an.

Was sollte man auf keinen Fall machen?

PowerDNS-Admin Datenbank löschen löscht alle API-Schlüssel und Domain-Zonen, die von External-DNS verwendet werden.

Referenzen:

PowerDNS — https://www.powerdns.com

ExternalDNS — https://github.com/kubernetes-sigs/external-dns

PowerDNS-Admin — https://github.com/PowerDNS-Admin/PowerDNS-Admin

Kontaktinformationen

Wenn du mehr über GitOps erfahren möchtest dann kontaktiere uns hier oder füge mich einfach in dein LinkedIn-Netzwerk hinzu!

About the author

Artem Lajko

Certified CNCF Kubestronaut and Head of Platform Engineering, specializes in Kubernetes scalability and GitOps-driven workflows. He is the author of Implementing GitOps with Kubernetes.

As a Platform Engineering Ambassador, he supports companies and the community in adopting Platform Engineering, Internal Developer Platforms, and related technologies. Passionate about Open Source, he helps organizations choose the right tools, driving tech adoption and innovation.

Keep reading


  • Diagram titled "Migration Guide!" showing OAuth2 Proxy plus Ingress-NGINX logos on the left, an arrow pointing right to OAuth2 Proxy plus the Traefik logo and mascot on the right.
    Cloud & DevOps

    ingress-nginx is being retired: How to Migrate to Traefik with OAuth2 Proxy

    Feb 23, 2026 · 13 min · Alexander Hoeft
  • Cartoon red panda mascot wearing a green shirt labelled "iits" and holding a wooden sign that reads "Help"
    Cloud & DevOps

    Grafana Helm Charts Are Moving on 30 Jan 2026

    Jan 22, 2026 · 4 min · Yannick Reinhardt
  • Victor Getz, CTO & Co-Founder of iits, & Thomas Weber, Vice President of Open Telekom Cloud, seated at a round table in conversation, one wearing an iits consulting t-shirt, the other identified by an on-screen caption as Thomas Weber, Vice President Open Telekom Cloud, with a city skyline visible through floor-to-ceiling windows behind them.
    Cloud & DevOpsArtificial Intelligence

    Exklusiv-Interview: Kommender Schritt zur Telekom Industrial AI Cloud steht fest

    Nov 11, 2025 · 3 min · Victor Getz