PostgreSQL: Ubuntu'da PostgreSQL şifresini sıfırlama [kapalı]


97

Ubuntu'da PostgreSQL veritabanı kurdum ve sunucu için bir süper kullanıcı oluşturdum.

Postgresql superuser şifresini unuttuysam, o kullanıcı için şifreyi (şifre) nasıl sıfırlayabilirim?

Kaldırmayı ve sonra tekrar yüklemeyi denedim, ancak önceden oluşturulan süper kullanıcı korunuyor.

Yanıtlar:


217

Makinenin yöneticisi olduğunuzu varsayarak, Ubuntu size herhangi bir kullanıcı olarak herhangi bir komutu çalıştırmanız için sudo hakkı verdi .
Ayrıca pg_hba.confdosyadaki ( /etc/postgresql/9.1/maindizindeki) hakları kısıtlamadığınızı varsayarsak , ilk kural olarak bu satırı içermelidir:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(Dosya konumu hakkında: 9.1ana postgres sürümü ve main"kümenizin" adıdır. Postgres veya varsayılan olmayan adların daha yeni bir sürümünü kullanıyorsanız farklı olacaktır pg_lsclusters. Sürümünüz / sisteminiz için bu bilgileri almak için komutu kullanın ).

Her neyse, pg_hba.confdosyada bu satır yoksa, dosyayı düzenleyin, ekleyin ve hizmeti ile yeniden yükleyin sudo service postgresql reload.

Ardından psql, bu kabuk komutuyla postgres süper kullanıcısı olarak oturum açabilmelisiniz:

sudo -u postgres psql

Psql'ye girdikten sonra SQL komutunu verin:

ALTER USER postgres PASSWORD 'newpassword';

Bu komutta, postgresbir süper kullanıcının adıdır. Parolası unutulan kullanıcı ise ritesh, komut şöyle olacaktır:

ALTER USER ritesh PASSWORD 'newpassword';

Referanslar: PostgreSQL 9.1.13 Dokümantasyon, Bölüm 19. İstemci Kimlik Doğrulaması

Sonunda tek bir S ile postgres yazmanız gerektiğini unutmayın.

Parolayı komut geçmişinde veya sunucu günlüğünde açık metin olarak bırakmak bir sorunsa, psql aşağıdakilere alternatif olarak bundan kaçınmak için etkileşimli bir meta komut sağlar ALTER USER ... PASSWORD:

\password username

Çift kör girişle şifreyi sorar, ardından password_encryptionayara göre karma hale getirir ve ALTER USERkomutu, şifresiz metin versiyonu yerine şifrenin karma haline getirilmiş versiyonu ile sunucuya verir.


2
yöntemini kullandım süper kullanıcı adım ritesh benim pg_hba.conf'um bahsettiğiniz gibi. "ALTER USER postgres PASSWORD 'newpassword';" komutunu çalıştırın. konsol 'ALTER ROLE' gösteriyor. sonra bir komut çalıştırdıktan sonra ctrl + c kullanarak çıktım createuser. bir parola girdiğimi gösteriyor yeni parola girdim ama bana hata veriyor "createuser: postgres veritabanına bağlanamadı: FATAL : "ritesh" "kullanıcısı için parola doğrulaması başarısız oldu. bir kullanıcı nasıl oluşturulur ve bu komut için parola ne olmalıdır?
Ritesh Mehandiratta

riteshALTER USER ritesh PASSWORD 'newpassword'
Şifresini

pg_hba.conf değiştirdikten sonra postgres'i yeniden başlatmalısınız ....
Mahdi

1
Yeniden başlatmaya gerek yok, sadece pg_ctl yeniden yüklemeyi kullanın.
hbn

Bunun için teşekkür ederim.
Promise Preston
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.