Ubuntu 9.10'daki postgres 8.4'ü yeni yükledim ve benden asla bir süper kullanıcı oluşturmamı istemedi. Varsayılan bir süper kullanıcı ve şifresi var mı? Değilse nasıl yeni bir tane oluşturabilirim?
Ubuntu 9.10'daki postgres 8.4'ü yeni yükledim ve benden asla bir süper kullanıcı oluşturmamı istemedi. Varsayılan bir süper kullanıcı ve şifresi var mı? Değilse nasıl yeni bir tane oluşturabilirim?
Yanıtlar:
DİKKAT "postgres" için UNIX şifresini "$ sudo passwd postgres" ile değiştirmedeki cevap tercih edilmez ve hatta TEHLİKELİ olabilir !
Bu nedenle: Varsayılan olarak, UNIX "postgres" hesabı kilitlidir, yani şifre ile giriş yapamazsınız. "Sudo passwd postgres" kullanıyorsanız, hesabın kilidi hemen açılır. Daha kötüsü, şifreyi "postgres" gibi zayıf bir şeye ayarlarsanız, o zaman büyük bir güvenlik tehlikesine maruz kalırsınız. Örneğin, UNIX sisteminize giriş yapmak için kullanıcı adı / şifre combo "postgres / postgres" denen bir sürü robot var.
Yapmanız gereken şey Chris James'in cevabını takip etmek.
sudo -u postgres psql postgres
# \password postgres
Enter new password:
Bunu biraz açıklamak için. PostgreSQL sunucusuna giriş yapmanın genellikle iki varsayılan yolu vardır:
UNIX kullanıcı olarak "psql'in" komutunu çalıştırarak, mesela (IDENT / EŞ kimlik sözde): sudo -u postgres psql
. sudo -u
Unix kullanıcı kilidini DEĞİLDİR unutmayın .
PostgreSQL'in kendi yönetilen kullanıcı adı / şifresini (TCP kimlik doğrulaması denir) kullanarak TCP / IP bağlantısı ile (yani, UNIX şifresi DEĞİL ).
Bu yüzden UNIX hesabı "postgres" için şifreyi asla ayarlamak istemezsiniz. Varsayılan olarak olduğu gibi kilitli bırakın.
Tabii ki varsayılan ayardan farklı bir şekilde yapılandırırsanız işler değişebilir. Örneğin, bir PostgreSQL şifresini UNIX şifresiyle senkronize edebilir ve sadece yerel girişlere izin verebilir. Bu, bu sorunun kapsamı dışında olacaktır.
/etc/shadow
şifrenin lzap tutulduğu yer.
Komut satırına girin:
$ sudo -u postgres psql postgres
postgres=# \password postgres
Göreceksin:
Enter new password:
Enter it again:
Kullanıcılardan posta kayıtlarını değiştirirsiniz postgres
:
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
su
Bir şifre girmeden postgres kullanıcısına root olmalısınız . Çoğu sistemde Postgres Unix hesabı kilitlidir (şifre çalışmaz), yani bu hesaba sadece root gelebilir su
.
sudo
kullanın su
.
sudo su - postgres
: \
sudo -u postgres
.
Windows'ta aşağıdakileri yapın (ÖNEMLİ: Bir Windows yönetici hesabı kullanın ):
Kurulumdan sonra açın <PostgreSQL PATH>\data\pg_hba.conf
.
Bu iki satırı değiştirin ve "md5" i "trust" olarak değiştirin:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
PostgreSQL hizmetini yeniden başlatın (gerekli olmayabilir).
(İsteğe bağlı) Bir komut istemi açın ve kod sayfasını 1252 olarak değiştirin:
cmd.exe /c chcp 1252
PostgreSQL'e giriş yapın. Şifreniz gerekmeyecek (büyük -U parametresini not edin):
psql -U postgres
(İsteğe bağlı, güvenlik nedeniyle önerilir) postgres
Kullanıcı şifresini değiştirin :
\password postgres
ve "trust" u tekrar "md5" olarak değiştirin pg_hba.conf
.
PostgreSQL kabuğuna erişmeye çalışıyorsanız, şunu yazabilirsiniz:
psql -U postgres my_database
my_database
Veritabanının adı nerede ?