Gönderen docs Uzantıları,
superuser (boolean) Bu parametre true olursa (varsayılan değerdir), yalnızca süper kullanıcılar uzantıyı oluşturabilir veya yeni bir sürüme güncelleyebilir. False değerine ayarlanırsa, yalnızca yükleme veya güncelleme komut dosyasında komutları çalıştırmak için gereken ayrıcalıklar gerekir.
Değer ayarlanmadı pgcrypto.control
, bu yüzden bir SuperUser gerektiren varsayılanı true değerine ayarlıyor .
Bu CREATE EXTENSION
, CREATE EXTENSION'daki belgelerin sizi inanmanıza neden olmasına rağmen, veritabanının sadece sahibi olamayacağınız anlamına gelir .
Ben sert ayarlamak için çalıştı false
ve hiçbir sevinç. C güvenilir olmayan bir dildir ve
HATA: c dili için izin verilmedi
Gönderen pg_language dokümanlar
Yalnızca süper kullanıcılar güvenilmeyen dillerde işlevler oluşturabilir.
... tabii ki süper kullanıcı olarak c
güvenebilirsiniz UPDATE pg_language set lanpltrusted = true where lanname = 'c';
. Sonra CREATE EXTENSION pgcrypto
süper kullanıcı olmayan olarak iyi çalışacaktır. Ancak, kullanıcılarınızın uzantı dizininize kaynak yüklemesi ve ardından veritabanına yüklemesi konusunda endişelenmeniz gerekiyorsa bu kötü bir fikir gibi görünüyor. Yani o kadar ileri gitmem. Bu kediyi görmek için başka bir yol bulurdum.
template1
ve o andan itibaren her kullanıcı veritabanı oluşturmatemplate1
gibiCREATE DATABASE foo OWNER=userfoo TEMPLATE=template1
?