Skip to content
iits
Work
ENDE
Let's talk→
Let's talk→
iits
Work
Let's talk→
Language
ENDE
Dortmund Office · Westfalendamm 279 · 44141 Dortmund

SERVICES

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

WORKSHOPS

AI Discovery WorkshopSoftware Architecture WorkshopCloud Architecture WorkshopFree UX AuditBuild-vs-Buy Assessment

LEGAL INFOMRATION

Legal NoticePrivacy PolicyTerms & Conditions
© 2026 iits-consulting.
  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
PowerDNS-Admin — Password vergessen?

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:

Research power on a deadline?

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

Keep reading


  • iits-consulting is a Partner of T Cloud Public
    Cloud & DevOps

    iits-consulting is a Partner of T Cloud Public

    Feb 23, 2026 · 4 min · Jenna Gockel
  • ingress-nginx is being retired: How to Migrate to Traefik with OAuth2 Proxy
    Cloud & DevOps

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

    Feb 23, 2026 · 13 min · Alexander Hoeft
  • Grafana Helm Charts Are Moving on 30 Jan 2026
    Cloud & DevOps

    Grafana Helm Charts Are Moving on 30 Jan 2026

    Jan 22, 2026 · 4 min · Yannick Reinhardt