Saya ingin memberikan drop
hak istimewa pada semua tabel dan fungsi (tidak hanya yang dimiliki oleh pengguna) dalam skema tertentu dari database tertentu untuk peran tertentu. Namun, GRANT ALL PRIVILEGES
itu tidak cukup dan saya tidak menemukan cara melakukannya tanpa membuat peran sebagai superuser - superuser memiliki hak atas database lain di server yang sama, yang bukan yang saya inginkan. Saya tidak akan keberatan hak superuser terbatas pada database tertentu, tapi saya tidak yakin bagaimana melakukannya.
Kode saya:
CREATE USER _administrator PASSWORD 'pwd12345';
CREATE ROLE administrator NOLOGIN ADMIN _administrator;
GRANT ALL PRIVILEGES ON DATABASE "myDB" TO administrator;
GRANT ALL PRIVILEGES ON SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO administrator;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO administrator;
administrator
adalah grup myDB
administrator basis data, _administrator
adalah peran yang paling kuat yang dapat diakses oleh aplikasi klien saya.
Apa yang saya lewatkan atau lakukan salah?