(Not: Bunun çoğu, PostgreSQL 9.2 veya daha üstünü kullanan ve EDB yükleyicilerinden kullanan ve artık diğer hesaplarını yapılandırabildiğiniz halde, kullanımıyla büyük ölçüde basitleştirilmiş bir varsayılan kurulum olan okuyucularla ilgili değildir NETWORK SERVICE
) .
net user postgres postgres
Veritabanımın şifresini sıfırlamak için kullandım ancak başarılı bir mesaj yerine alıyorum"System error 5 has occurred. Access is denied."
Servis hesabı şifresini sıfırladınız (veya sıfırlamayı denediniz). PostgreSQL güvenlik nedeniyle yönetici olarak çalışmayacak ve yükleyici genellikle PostgreSQL 9.1 ve üstü bir "postgres" kullanıcı hesabı ile kurar 1 . Windows'ta, kullanıcının şifresini kayıt defterine kaydetmeden bir kullanıcı olarak bir hizmeti başlatamazsınız, bu yüzden yükleyicinin yaptığı şey budur.
Windows kullanıcı hesabının şifresini değiştirirseniz, postgres
PostgreSQL hizmeti artık başlayamaz. Bu yüzden bunu yapma, güncellenmiş şifreyi saklamak için servis yapılandırmasını düzeltmen gerekecek.
Neyse ki başka bir hatanın bunu yapmasını engellediğini düşünüyorum. Muhtemelen ayrıcalıklı olmayan bir Windows kullanıcı hesabında veya UAC'li bir makinede "Yönetici Olarak Çalıştır" kullanmadan komut isteminizi çalıştırıyor gibi görünüyorsunuz, bu nedenle postgres
kullanıcının şifresini değiştirmek için gereken erişim izinleriyle çalışmıyor .
Şifreyi değiştirmeye çalışmadan önce, gerçekten yapmak istediğiniz şeyin olduğundan emin olun. Burada çözmeye çalıştığınız sorun nedir? Bir veritabanı güncellemesi veya postgres
Windows kullanıcısı için parola isteyen başka bir şey yüklemeye mi çalışıyorsunuz ?
Büyük olasılıkla sadece veritabanına giriş yapmaya çalışıyorsunuz. Bunun için, veritabanında saklı olan (ne yazık ki tamamen alakasız) şifreyi kullanırsınız. Kaybettiğinizde / unuttuğunuzda, sıfırlamanız gerekir:
- Bulun
pg_hba.conf
, genellikle içindeC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Gerekirse, üzerinde değişiklik yapabilmek için izinleri ayarlayın; Kullanıcı hesabınız, bir yönetici geçersiz kılma kullanarak kendinize bu hakkı vermek için özellikler iletişim kutusundaki güvenlik sekmesini kullanana kadar yapamayabilir. Alternatif olarak, başlat menünüzde notepad / notepad ++ 'ı bulun, sağ tıklayın, "Yönetici olarak çalıştır" ı seçin, ardından açmak için Dosya-> Aç' ı kullanın
pg_hba.conf
.
"127.0.0.1/32" ana bilgisayarındaki "postgres" kullanıcısı için "ana bilgisayar" satırını "güven" olarak ayarlamak için düzenleyin. Orada değilse satırı ekleyebilirsiniz; sadece ekle:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
diğer satırlardan önce . (Yorumlar ile başlayan satırları görmezden gelebilirsiniz #
).
PostgreSQL servisini Servisler kontrol panelinden tekrar başlatın (start-> run-> services.msc
)
- psql veya PgAdmin-III veya ne istersen kullanarak bağlan
ALTER USER postgres PASSWORD 'postgres'
- eklediğiniz satırı kaldırın
pg_hba.conf
veya geri değiştirin
- PostgreSQL'i tekrar başlatın.
Bkz: Windows'ta PostgreSQL için postgres şifresini nasıl sıfırlarım?
1. 9.2 şimdi NETWORKSERVICE
şifre gerektirmeyen bir hesap kullanıyor , bu yüzden bu sorun çözülüyor .