TL; DR: Yeni kullanıcılar public
şemada tablolar oluşturabilir, çünkü insanlar yapamadıklarında çok zor olduğundan şikayet ettiler.
Varsayılanları beğenmediyseniz, muhtemelen ilk yapılandırmayı istediğiniz yeni bir şablon veritabanı oluşturmanız gerekir. Örneğin, şunları yapabilirsiniz:
DROP SCHEMA public;
veya
REVOKE ALL ON SCHEMA public FROM public;
GRANT USAGE ON SCHEMA public TO public;
ekleyin.
İsterseniz public
bir veritabanı üzerinde hakları yok kullanıcı, fazladan şunları yapmalıdır:
REVOKE ALL ON DATABASE mydbname FROM public;
GRANT CONNECT ON DATABASE mydbname TO public;
böylece public
kullanıcı şema oluşturamaz veya geçici tablo kullanamaz.
Şahsen, bunu tasarlıyorsam, kullanıcılara TEMP
varsayılan olarak veritabanında doğru veriyorum , ancak CREATE
(veritabanındaki şemalar) veya CREATE
( public
şemadaki tablolar ) vermezdim . Bunları sahibi için ayırırdım.
Yine de uzun zaman önce yapılmış seçimler ve şimdi bunları değiştirmek oldukça zor.
Olduğu gibi, bir kullanıcı hesabı oluşturmanız ve genellikle de bir veritabanı oluşturmak istediğiniz için PostgreSQL'e başlamanın çok zor olduğu konusunda düzenli şikayetler vardır. Neden sadece otomatik olarak oluşturmuyoruz ve bunu kolaylaştırmak için kimlik doğrulama modu olarak 'güven' olarak ayarlıyoruz? postgres
Kullanıcı neden parolayı varsayılan olarak kullanmıyor postgres
? Neden işletim sisteminde varsa kullanıcıları otomatik olarak oluşturmuyoruz? vb.
Yeni kullanıcılar için bazı gerçek kullanılabilirlik sorunları var - özellikle, çoğu insanın peer
yetkinin ne olduğu veya psql
PostgreSQL'i kurduktan sonra neden çalıştıklarının, oturum açtıkları adla hiçbir kullanıcı olmadığını söyledi.
pg_hba.conf
Bir yapılandırma dosyası da dağınık , ancak kullanıcılar SQL düzeyinde oluşturulur. Bu bölünme kullanıcıları karıştırır.
Bununla birlikte, birçok şey, güvenli varsayılanlar ile projenin herkesi mutlu edemeyeceği kolay varsayılanlar arasında uzlaşmalardır.
revoke create on database [databasename] from [username];
ve DB şimdi sadece [kullanıcı adı] için gerçekten okunur. Sağ? İyi bir Postgres kitabı okuduğumda bu cevaba tekrar geleceğim :)