(Hinweis: Nicht viel davon ist relevant für die Leser PostgreSQL 9.2 oder höher von der EDB Installateure verwenden, die nun stark vereinfacht haben Standard - Installation von der Verwendung NETWORK SERVICE
, obwohl Sie können noch configure andere Konten) .
Ich habe net user postgres postgres
das Kennwort für meine Datenbank zurückgesetzt, erhalte jedoch keine Erfolgsmeldung"System error 5 has occurred. Access is denied."
Sie haben das Dienstkontokennwort zurückgesetzt (oder versucht, es zurückzusetzen). PostgreSQL wird aus Sicherheitsgründen nicht als Administrator ausgeführt und das Installationsprogramm richtet es im Allgemeinen mit einem "postgres" -Benutzerkonto in PostgreSQL 9.1 und älter 1 ein . Unter Windows können Sie keinen Dienst als Benutzer starten, ohne das Kennwort des Benutzers in der Registrierung zu speichern. Das ist also die Aufgabe des Installationsprogramms.
Wenn Sie das Kennwort für das Windows-Benutzerkonto ändern postgres
, kann der PostgreSQL-Dienst nicht mehr gestartet werden. Tun Sie das nicht, Sie müssen die Dienstkonfiguration korrigieren, um das aktualisierte Kennwort zu speichern.
Zum Glück hat Sie ein weiterer Fehler daran gehindert. Es sieht so aus, als würden Sie wahrscheinlich Ihre Eingabeaufforderung ausführen, ohne "Als Administrator ausführen" für ein nicht privilegiertes Windows-Benutzerkonto oder einen Computer mit Benutzerkontensteuerung zu verwenden. Daher wird die Eingabeaufforderung nicht mit den Zugriffsberechtigungen ausgeführt, die zum Ändern des Kennworts für den postgres
Benutzer erforderlich sind .
Bevor Sie versuchen, dieses Kennwort zu ändern, stellen Sie sicher, dass es wirklich das ist, was Sie tun möchten. Was ist das Problem, das Sie hier lösen wollen? Versuchen Sie, ein Datenbankupdate oder etwas anderes zu installieren, bei dem Sie nach dem Kennwort für den postgres
Windows-Benutzer gefragt werden ?
Höchstwahrscheinlich versuchen Sie nur, sich bei der Datenbank anzumelden. Dafür verwenden Sie das in der Datenbank gespeicherte (leider völlig unabhängige) Passwort selbst. Da Sie es verloren / vergessen haben, müssen Sie es zurücksetzen:
- Finden Sie Ihre
pg_hba.conf
, in der Regel inC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Stellen Sie bei Bedarf die Berechtigungen dafür ein, damit Sie sie ändern können. Ihr Benutzerkonto ist möglicherweise erst dazu in der Lage, wenn Sie die Registerkarte "Sicherheit" im Dialogfeld "Eigenschaften" verwenden, um sich diese Berechtigung mithilfe einer Administratorüberschreibung zu erteilen. Alternativ finden Sie Notepad / Notepad ++ in Ihrem Startmenü, klicken Sie mit der rechten Maustaste, wählen Sie "Als Administrator ausführen" und öffnen Sie
pg_hba.conf
diese über Datei-> Öffnen .
Bearbeiten Sie es, um die Zeile "host" für den Benutzer "postgres" auf dem Host "127.0.0.1/32" auf "trust" zu setzen. Sie können die Zeile hinzufügen, wenn sie nicht vorhanden ist. einfach einfügen:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
vor allen anderen Zeilen. (Sie können Kommentare und Zeilen, die mit beginnen, ignorieren #
.)
Starten Sie den PostgreSQL-Dienst über die Systemsteuerung "Dienste" neu (start-> run-> services.msc
).
- Stellen Sie eine Verbindung mit psql oder PgAdmin-III her
ALTER USER postgres PASSWORD 'postgres'
- Entfernen Sie die Zeile, die Sie hinzugefügt haben,
pg_hba.conf
oder ändern Sie sie zurück
- Starten Sie PostgreSQL erneut.
Siehe: Wie setze ich das postgres-Passwort für PostgreSQL unter Windows zurück?
1. 9.2 verwendet jetzt das NETWORKSERVICE
Konto, für das kein Kennwort erforderlich ist, sodass dieses Problem behoben ist .
NETWORKSERVICE
Benutzerkonto zu verwenden , gibt es kein Kennwort für das Dienstkonto. Wenn Sie installiert haben, um ein dediziertes Dienstkontopostgres
oder ein Domänenkonto zu verwenden, kann dies hilfreich sein.NETWORK SERVICE
, muss kein Kennwort zurückgesetzt werden. Wenn Sie unter 9.2+ mit einem anderen Konto installiert haben, gelten dieselben Informationen. Und es gibt keine Änderung an dem Teil, der das Zurücksetzen des Kennworts für das postgres-Superuser-Datenbankkonto betrifft . Es sind also keine Änderungen erforderlich.Sie müssen zwischen Ihrem Systembenutzer (Windows) namens "postgres" und dem Datenbankbenutzer mit demselben Namen unterscheiden.
Suchen Sie Ihre pg_hba.conf-Datei - dies steuert den Zugriff auf den PostgreSQL-Server. Sie müssen es als Benutzer mit Administratorrechten bearbeiten. Suchen Sie nach Zeilen, die den Benutzer "postgres" erwähnen, und setzen Sie den Modus vorübergehend auf "trust". Starten Sie postgresql neu und Sie sollten in der Lage sein, eine Verbindung ohne Passwort herzustellen. Setzen Sie das Passwort zurück, stellen Sie die ursprünglichen Einstellungen der Datei wieder her und starten Sie PostgreSQL neu.
Das Handbuch enthält Details zu Authentifizierungsmethoden und zur Datei pg_hba.conf .
quelle
Wenn jemand anderes auf dieses Problem stößt und gleichzeitig pgAdmin verwendet, sollten Sie Folgendes überprüfen: http://www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword
quelle