kullanıcı posta göndericileri için parola gereksinimini kaldır


46

Kurulum sırasında PostgreSQL'in db root kullanıcısı (postgres) için şifresi olmadığını biliyorum:

postgres=# select usename, passwd is null from pg_shadow;
 usename  | ?column? 
----------+----------
 postgres | t
(1 row)

... ve birinin ayarlanması önerilir:

alter role postgres password '<<very-secret>>';

(ve ardından pg_hba.confdosyayı uygun şekilde güncelleyin )

Sorum şu: kullanıcı için parola gerekmediğinde önceki durumuna geri dönmek için kullanılacak SQL nedir postgres.

Genel olarak, herhangi bir rol için parola gereksinimini nasıl kaldırabilirim? Parolayı nasıl değiştireceğimi değil, parola gereksinimini nasıl kaldıracağımı sormuyorum ( passwdtablodaki boş sütun pg_shadow).

Yanıtlar:


55

Bir şifre pg_shadowgerekip gerekmediği ile ve kullanıcı için bir şifre tanımlanıp tanımlanmadığı ile ilgisi yoktur . Evet biliyorum çok garip.

pg_hba.confkimlik doğrulama yöntemini kontrol eder. Bir şifre istemek istiyorsanız, md5kimlik doğrulama kullanın . Kimsenin şifresi olmadan giriş yapmasına izin vermek istiyorsanız, kullanın trust. İşletim sisteminde PostgreSQL ile aynı kullanıcı adını kullanmak istiyorsanız, peer(UNIX, yalnızca yerel bağlantılar için) veya sspi(Windows) kullanın.

Bir şifre seti varsa, ancak pg_hba.confPostgreSQL'e sormasını söylemezse, şifre dikkate alınmaz.

pg_hba.confPostgreSQL'e bir şifre sormasını söyler ancak ayarlanan bir şey yoksa, hangi şifre verilirse girilsin giriş girişimlerinin tümü başarısız olur.


12

Postgres kullanıcısı varsayılan olarak şifre içermez. Bir kullanıcı şifresini kaldırmak için (bu durumda postgres kullanıcısı / rolü için):

alter role postgres password null;

Biz de set kimlik doğrulaması gerekir trustiçinde pg_hba.conf- görünümü ayrıntıları [ https://dba.stackexchange.com/a/19657/52550]


3
şimdi psql
Roberth Solís

3
Evet, şimdi bir şifre isteniyor ve giriş
yapamıyorum

1
bu komut beni postgres'ten men etti - @Amalgovinus'un dediği gibi.
Nam G VU

1
Nedeniyle hata değil erişimini Eğer psql: fe_sendauth: no password supplied, sonra düzenleyebilir C:\Program Files\PostgreSQL\10\data\pg_hba.confve değiştirme md5ile trustyanındaki 127.0.0.1/32altında IPv4 local connectionsyanındaki ve ::1/128altındakiIPv6 local connections
Marco Lackovic

1

Bu benim için çalıştı:

alter role postgres password '';


4
Bunu postgres 10'da yaptığımda, "DİKKAT: boş dize geçerli bir şifre değil, şifre temizleniyor" hatası alıyorum. Ama yine de şifremi değiştiriyor ve hiçbir şey ile giriş yapamıyorum! O NE LAN!!
Amalgovinus

@Amalgovinus benim yorumu görmek lalligood cevap
Marco Lackovic
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.