Raylara çok yeniyim, bu yüzden bu aptalca bir soru değil.Tablo sahipliğini postgresql ile raylarda nasıl ayarlayabilirim?
Rayların iki farklı kullanıcı hesabıyla bir postgresql veritabanı kullanmasını sağlamaya çalışıyorum. Ancak, bu hesaplar arasında geçiş yapabilmeyi istiyorum, bu nedenle veritabanında aynı izinlere sahipler (her ikisi de ideal olarak postgresql süper kullanıcı olmaksızın).
Veritabanının sahibi olan postgres'te bir NOLOGIN
rolü oluşturdum. Daha sonra bu role iki kullanıcı hesabı atanmıştır. Ancak, rake db:migrate
'u ne zaman yaparım, kullanıcı hesabını (ve rolünü değil) tablosunun sahibini yapacaktır. Kullanıcıları değiştirirseniz, ikinci kullanıcı ilk kullanıcı tarafından oluşturulan tablolarda doğru izinlere sahip olmaz. İki hesaba sahip olmanın sebebi hızlı bir şekilde geçiş yapabilmektir, örn. şifreyi hiçbir kesinti olmadan değiştirmem gerektiğinde.
Tablo oluştururken, rayların sahibi olarak belirli bir rol kullanmasını söylemenin bir yolu var mı? (ya da belki aynı postgresql rolünde iki hesaplar olmadan bunu gerçekleştirmek için daha iyi bir yolu var?)
GÜNCELLEME: Şimdiye kadar harici komut dosyası olarak elle çalıştırmak ve NOLOGIN rolüne tüm tabloları sahipliğini değiştirmek için this solution bulundu ama daha zarif bir şey umuyorum ya da raylarla iyi uyuyor.
Teşekkür:
kim olduğunu izini kaybetmiş edin. İlk seçeneğe bakmak: İki kullanıcıyla bir 'ana' rol oynamak yerine, her biri diğerinde verilen iki kullanıcımız olacak mı? Örneğin. 'GRANT user1 kullanıcısına2; GRANT user2 kullanıcısına1? Ve bu bir “anahtar” dan önce her seferinde manuel olarak yürütmek zorunda olacak mı? Eğer 'VARSAYILAN PRIVILEGES' kullanırsam ancak bunu sadece bir kez yapabilirim. Sağ? – gingerlime
['GRANT'] (http://www.postgresql.org/docs/current/interactive/sql-grant.html), kalıcı olarak ayrıcalıklar vermek anlamına gelir ve yalnızca bir kez gereklidir. –
daft için üzgünüm, ama bunun nasıl işe yaradığını anlamıyorum. Hiberarşinin hiyerarşik olduğu görülmektedir. GR GRANT user1 kullanıcısına ', böylece user2 kullanıcı1 ile aynı izinlere sahip olacak, ancak diğer şekilde değil. Hangi kullanıcının bir tablo oluşturduğuna bakılmaksızın, her iki kullanıcının da tam olarak aynı ayrıcalıklara sahip olmasına ihtiyacım var. Belki bir şey özlüyorum. – gingerlime