PostgreSQL 16: Kurulum, Kullanıcı Yetkileri ve Uzaktan Bağlantı
Panelden açtığınız PostgreSQL hizmetine uygulamanızı bağlama, rol ve şema yetkilerini doğru kurma ve pg_dump ile yedek alma rehberi.
Şu sürümlerde doğrulandı
- PostgreSQL
- 16
- İstemci
- psql 16 / pgAdmin 4
- Son kontrol
- 2026-09-13
Başlamadan önce
- Panelde açılmış ve en az bir kez başlatılmış bir PostgreSQL hizmeti
- Hizmetin IP adresi ve portu (panelde 'Bağlantı Adresi' kartında yazar)
- Yerel makinenizde psql veya pgAdmin
PostgreSQL, MySQL'den farklı olarak kullanıcı (role) ve veritabanı yetkilerini birbirinden ayrı tutar. Yeni başlayanların en çok takıldığı yer budur: bir role veritabanına bağlanma izni vermek, o roldeki kullanıcının tablo oluşturabileceği anlamına gelmez. Bu rehber, sıfırdan bir uygulama kullanıcısı oluşturup yalnızca ihtiyacı olan yetkileri verme yolunu izler.
İlk bağlantı ve süper kullanıcı#
Panelde hizmeti oluşturduğunuzda başlangıç kullanıcısı ve parolası ortam değişkenlerinde tanımlanır; bunları hizmet detayındaki 'Başlatma Değişkenleri' bölümünde görebilirsiniz. İlk bağlantıyı bu kullanıcıyla yapın, ardından uygulamanız için ayrı bir rol oluşturun — uygulamayı süper kullanıcıyla çalıştırmak, bir SQL injection açığını tüm veritabanının kaybına dönüştürür.
# Panelde yazan IP ve portu kullanin
psql "postgresql://postgres:[email protected]:5432/postgres"
# Baglanti kuruldu mu?
postgres=# SELECT version();Uygulama için ayrı rol ve veritabanı#
-- 1) Rolu olustur (LOGIN olmadan baglanamaz)
CREATE ROLE uygulama WITH LOGIN PASSWORD 'guclu-bir-parola';
-- 2) Veritabanini bu rolun sahipligiyle olustur
CREATE DATABASE uygulama_db OWNER uygulama;
-- 3) Herkese acik public semasindan yazma yetkisini al
\c uygulama_db
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
-- 4) Yalnizca uygulama rolune ver
GRANT ALL ON SCHEMA public TO uygulama;Uzaktan erişimi güvenli tutmak#
- Veritabanı portunu herkese açmak yerine yalnızca uygulama sunucunuzun IP'sinden erişime izin verin.
- Parolayı uygulama kodunda değil, hizmetin ortam değişkenlerinde tutun.
- Farklı ortamlar (test / canlı) için farklı rol ve parola kullanın; aynı parolayı paylaşmak, test ortamına sızan birine canlıyı da açar.
- Yalnızca okuma yapan servisler için ayrı bir rol açıp SELECT yetkisiyle sınırlayın.
pg_dump ile yedek almak#
Yedek alma ve geri yükleme
# Ozel bicim (-Fc): sikistirilmis ve secici geri yuklemeye uygun
pg_dump -Fc \
-h 192.0.2.10 -p 5432 -U uygulama \
-d uygulama_db \
-f uygulama_db_$(date +%F).dumpSorun Giderme
connection refused / timeout
Hizmet durmuş, yanlış port kullanılıyor veya PostgreSQL yalnızca localhost'u dinliyor.
Panelde hizmetin çalıştığını ve 'Bağlantı Adresi' kartındaki portu doğrulayın; listen_addresses değerinin '*' olduğundan emin olun.
permission denied for schema public
PostgreSQL 15+ davranışı: role yalnızca bağlanma izni verilmiş, şemada oluşturma izni verilmemiş.
GRANT ALL ON SCHEMA public TO <rol>; komutunu ilgili veritabanına bağlıyken çalıştırın.
too many clients already
Uygulama her istekte yeni bağlantı açıyor ve kapatmıyor; max_connections doluyor.
Uygulamada bağlantı havuzu (connection pool) kullanın; havuz boyutunu max_connections'ın altında tutun.
Sık Sorulanlar
MySQL'den PostgreSQL'e geçmeli miyim?
Çalışan bir MySQL kurulumunuz varsa yalnızca somut bir ihtiyaç için geçin: JSONB üzerinde indeksleme, gelişmiş pencere fonksiyonları, coğrafi veri (PostGIS) veya katı tip kontrolü gibi. Geçişin kendisi bir maliyettir ve her iki motor da tipik bir web uygulaması için fazlasıyla yeterlidir.
Panelden veritabanı oluşturamıyorum, neden?
PostgreSQL burada ayrı bir hizmet olarak çalışır; veritabanlarını panel üzerinden değil, psql ile CREATE DATABASE komutuyla oluşturursunuz. Bu rehberdeki adımlar tam olarak bu yolu izler.
Bu rehber işinize yaradı mı?
Geri bildiriminiz doğrudan rehberi güncelleyen ekibe gider.
İlgili Rehberler
MySQL Uzaktan Bağlantı (Remote Access) ve Otomatik Yedekleme
MySQL sunucusunu dış bağlantılara açma, kullanıcı yetkilendirme ve mysqldump ile otomatik arşiv alma rehberi.
Redis Kurulumu, Bellek Sınırları ve Şifreli Doğrulama Rehberi
RAM üzerinde çalışan anahtar-değer deposu Redis'in Ubuntu/Debian kurulumu, maxmemory sınırları ve güvenli parola yapılandırması.

