Konuyu Açan #1
Giriş
PostgreSQL’te PUBLIC rolü, veritabanı düzeyinde varsayılan olarak tüm kullanıcılar için erişim haklarını kapsayan özel bir rol olarak tanımlanır. Bu mekanizmanın davranışı, güvenlik politikalarını ve erişim kontrolünü önemli ölçüde etkiler. PUBLIC’i doğru anlamak, istenmeyen yetkileri minimize etmek ve gerektiğinde ince ayar yapmak için kritiktir.

Temel kavramlar ve mekanizma
  • PUBLIC, veritabanı düzeyinde tüm kullanıcıya otomatik olarak atanır. Eğer bir objeye (tablo, view, fonksiyon vb.) hak verilirse, bu hak o objeye sahip olan bütün kullanıcılar için geçerli olur ve ayrı ayrı kullanıcıya hak verilmesini gereksiz kılar.

  • GRANT ... TO PUBLIC ifadesiyle bir objeye yetki verilir. REVOKE ... FROM PUBLIC ile bu yetki geri alınabilir.

  • Privilege tipi olarak SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER gibi haklar PUBLIC üzerinden yönetilebilir. Ayrıca USAGE, EXECUTE gibi özel haklar da kapsam dışı kalabilir.

  • PUBLIC’in kapsamı, pg_roles ve pg_class gibi katalog tablolarında, güvenlik politikalarını etkileyebilecek şekilde genelleyici davranır. Bu nedenle, kritik tablolar ve görünümler üzerinde PUBLIC haklarını sıkı tutmak güvenlik risklerini azaltır.


İyi uygulama önerileri ve riskler
  • Minik adımlarla başlayın: güvenlik ihtiyacı olmayan objelerden PUBLIC haklarını kaldırın; örneğin bir tabloya gereksiz SELECT vermek yerine belirli rol veya kullanıcıya ulaşımı sınırlayın.

  • Sıkılaştırma için hazır bir başlangıç seti oluşturun: her objeye önce PUBLIC’i kapatıp sonra gerekli olan rollere özel grant yapın.

  • Görünümlerle ayrıştırma: hassas verileri doğrudan tablo yerine görünüm üzerinden sunun ve PUBLIC’e yalnızca görünüm üzerinde temel haklar verin.

  • Audit ve izleme: hangi objelerde PUBLIC hakları var, kimlerin bu hakları kullanıyor düzenli olarak kontrol edin; gerektiğinde revize edin.


Son düşünce ve tartışma
PG’de PUBLIC haklarını yönetmek çoğu zaman en zorlu denge oyunudur: güvenlik ile iş gereksinimleri arasında. Gerçek dünyadan örnekleriniz veya kendi projelerinizde PUBLIC’i nasıl yönettiğinize dair deneyimlerinizi paylaşabilir misiniz? Özellikle hangi objelerde PUBLIC’i kısıtladınız ve beklenen etkileri nasıl gözlemlediniz?

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi