Cevabım ServerFault.com'daki buna benzer .
Muhafazakar Olmak
"Tüm ayrıcalıkları" vermekten daha muhafazakar olmak istiyorsanız, buna benzer bir şey denemek isteyebilirsiniz.
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO some_user_;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO some_user_;
public
Orada kullanımı, her yeni veritabanı / katalog için oluşturulan varsayılan şemanın adını ifade eder. Bir şema oluşturduysanız kendi adınızla değiştirin.
Şemaya Erişim
Bir şemaya tamamen erişmek için, herhangi bir işlem için kullanıcıya "kullanım" hakları verilmelidir. Bir kullanıcının seçim yapabilmesi, ekleyebilmesi, güncelleyebilmesi veya silebilmesi için önce kullanıcıya bir şema için "kullanım" izni verilmelidir.
Postgres'i ilk kullandığınızda bu gereksinimi fark etmeyeceksiniz. Varsayılan olarak her veritabanı adlı bir ilk şemaya sahiptir public
. Ve her kullanıcıya varsayılan olarak otomatik olarak o belirli şema için "kullanım" hakları verilmiştir. Ek şema eklerken, açıkça kullanım hakları vermelisiniz.
GRANT USAGE ON SCHEMA some_schema_ TO some_user_ ;
Postgres belgesinden alıntı :
Şemalar için, belirtilen şemada bulunan nesnelere erişime izin verir (nesnelerin kendi ayrıcalık gereksinimlerinin de karşılandığı varsayılarak). Esasen bu, hibe alan kişinin şema içindeki nesneleri "aramasına" izin verir. Bu izin olmadan, örneğin sistem tablolarını sorgulayarak nesne adlarını görmek yine de mümkündür. Ayrıca, bu izni iptal ettikten sonra, mevcut arka uçlarda daha önce bu aramayı gerçekleştiren ifadeler olabilir, bu nedenle bu, nesne erişimini önlemenin tamamen güvenli bir yolu değildir.
Daha fazla tartışma için ŞEMA'DA HİBE KULLANIMI tam olarak ne işe yarar? Sorusuna bakın. . Postgres uzmanı Craig Ringer'ın yanıtına özellikle dikkat edin .
Varolan Nesneler Geleceğe Karşı
Bu komutlar yalnızca mevcut nesneleri etkiler. Gelecekte oluşturduğunuz tablolar ve benzerleri, yukarıdaki satırları yeniden çalıştırana kadar varsayılan ayrıcalıklara sahip olur. Varsayılanları değiştirerek gelecekteki nesneleri etkilemek için Erwin Brandstetter'ın diğer cevabına bakın .