RedHat üzerinde PostgreSQL 9.0.3 kullanıyorum. Veritabanı, iki şema, public
ve wh
içerir. django
adlı yeni bir rol oluşturdum. Bu kullanıcının wh
şemasını varsayılan olarak kullanmasını istiyorum.PostgreSQL search_path değiştirilmedi olarak bildirimde bulunmuyor
kılavuzda ardından yaptım:
ALTER USER django SET SEARCH_PATH TO wh, public;
Bu işe görünmektedir: Sonra yaparsanız
SHOW SEARCH_PATH;
search_path
-------------
wh, public
Ancak, \dt
, kamu şema sadece tablolar
wh
tablolarına erişebilmem gerekir, ancak durum böyle değil. Oturum açma ve kapatma, değişiklikleri
search_path
olarak korur, ancak herhangi bir davranış değişikliği göstermez.
Neyi eksik?
Merhaba Erwin, Bu işe yaradı! Bu role süper kullanıcı vermenin bunu başaramadığı çok garip. Bununla birlikte, şemadaki açık hibe, davranışı doğru hale getirir. Katkıda bulunan herkese çok teşekkür ederim. – talonsensei
"SELECT id from mytable" gibi bir şema niteliği olmayan bir tabloyu sorgularken, PG "mytable" ilişkisinin var olmadığını söyler, çünkü var olduğunu bildiğinizden biraz yanıltıcıdır, ancak belki de erişim. Bu nedenle, tabloyu "SELECT id FROM myschema.mytable" gibi uygun bir şema adıyla sorguladığınızda, bunun yerine şu iletiyi alırsınız: "şema için izin reddedildi." 'ifadesi gerekli. Bu, sorgularda tam nitelikli şema adlarının kullanılmasının iyi bir fikir olmasının bir nedenidir. –
Hey Erwin, Çözüm için teşekkürler, beni kurtardın! :-) ve soruyu başlatmak için talonsensei sayesinde :-) – shahjapan