Postgresql veritabanı oluşturma ve ortadan kaldırma bürokrasisi

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
25,292
Postgresql kullanan bir envanter takip programı üzerinde çalışıyorum. Mutlak ihtiyaçtan ziyade amaç nodejs/expressjs öğrenmek. Sürekli veritabanı yapısını da değiştirdiğim için, bir SQL script ile düzenli olarak mevcut veritabanı yapısını tamamen temizleyip yeni yapıyı sıfırdan oluşturmak istedim. Beklentim, database'i sil, ilgili kullanıcıyı sil, kullanıcıyı tekrar oluştur, database'i tekrar oluştur. Ama iş malesef o kadar basit çıkmadı. İlave birkaç tane, bana saçma gelen adım var.

Veri tabanını oluşturuyorum, owner olarak da yeni oluşturduğum kullanıcı adını tanımlıyorum. Ama o kullanıcının veritabanına yeni tablo ekleme izni yok. Yapılması gereken, veritabanı içerisindeki "schema" için de yetkilendirme yapmak. Bu nasıl iştir yav ... Şuna benziyor: Adama evi satıyorsun, sonra da adamı yatak odasına sokmuyorsun "git balkonda uyu" diyorsun ...

Neyse, sıfırdan veri tabanı oluşturup bir kullanınıyı tam yetkilendirme yapan SQL prosedürü şöyle. Bu işlemlerin tamamının postgresql admin kullanıcısı (varsayılan isim postgres) yapması gerekiyor.

SQL:
# kullanıcıyı oluştur
create role <user> login password '<password>';

# veritabanını oluştur
create database <db> owner <user>;

# oluşturulan veritabanını kullan
\c <db>

# zaten veritabanının sahibi olan kullanıcıya, veritabanının şeması için de
# erişim izni ver :()
alter schema public owner to <user>;

Veritabanını ve ilgili kullanıcıyı silip varsayılan duruma dönme prosedürü

SQL:
# silinecek veritabanından farklı bir veritabanına geç
\c postgres

# veritabanını sil
drop database <db>;

# kullanıcı ile ilişkili olan bütün yetkilendirmeleri sil
drop owned by <user>;

# kullanıcının kendisini sil
drop role <user>;
 
docker container i kullanarak cok rahat bir sekilde yapabilirsiniz. drop scriptlerine gerek kalmaz sadece container uzerinde calistir durdur islemleri yaparak cozebilirsiniz hem de farkli amaclar da da sifirdan db ihtiyaclariniz cozer
 

Forum istatistikleri

Konular
7,847
Mesajlar
130,039
Üyeler
3,156
Son üye
ucakelektronik

Son kaynaklar

Son profil mesajları

Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
az bilgili çok meraklı
Back
Top