Bagaimana Anda menangani kekurangan tingkat Skema di Oracle? Arsitektur keamanan Oracle bekerja dengan baik untuk aplikasi yang hanya membutuhkan hak-hak tingkat objek dan berfungsi dengan baik untuk DBA yang membutuhkan beberapa batasan. Namun, tampaknya ada lubang menganga besar dalam arsitektur untuk programmer melakukan pengembangan dengan aplikasi ujung depan dan PL / SQL dalam berbagai skema. Berikut adalah beberapa opsi saya dengan kelemahannya:
Buat setiap programmer melakukan pengembangan dalam skema mereka sendiri. DBA akan memberikan hak tingkat objek untuk programmer yang membutuhkannya. Setiap pengembangan paket harus dilakukan oleh DBA. Kelemahan utama adalah bahwa pemrogram akan menggunakan basis data seperti sedikit ember untuk merugikan kinerja basis data. Saya ingin para programmer untuk mengembangkan dalam database, tetapi metode ini akan sangat mencegahnya.
Berikan masing-masing programmer nama pengguna / kata sandi untuk selusin skema yang mereka butuhkan untuk melakukan pengembangan. Berikan izin skema aplikasi ini untuk membuat prosedur, tabel, dll. Beberapa kelemahan dengan pendekatan ini adalah bahwa programmer harus mempertahankan beberapa login dan jarang masuk sebagai diri mereka sendiri. Pengembangan lintas skema juga sulit.
Berikan hak istimewa autentikasi proksi pemrogram pada setiap skema yang mereka perlukan untuk pengembangan. Ini membuat mereka tetap masuk sebagai diri mereka sendiri tanpa harus memberi mereka hak istimewa selain hak proxy. Kerugian termasuk programmer harus mempertahankan koneksi terpisah untuk setiap skema yang mereka proksi, pengembangan lintas skema lebih rumit karena koneksi harus terus berubah, dan paket yang menggunakan tautan basis data publik dengan otentikasi yang dilewati tidak akan dikompilasi di dalam koneksi proxy.
Berikan masing-masing hak istimewa programmer DBA. - Kelemahan di sini adalah keamanan. Tidak ada pemrogram skema yang dapat dijauhkan dari skema apa pun dan pemrogram mana pun dapat menyamar sebagai pemrogram lainnya (DBA).
Tampaknya ada opsi yang hilang untuk memberikan masing-masing programmer SELECT / INSERT / CREATE / etc. hak istimewa pada skema yang mereka perlukan untuk melakukan pengembangan. Mereka masuk sebagai diri mereka sendiri untuk melakukan pekerjaan mereka menggunakan satu koneksi. Objek baru dalam skema yang dapat diakses langsung tersedia.
Apakah saya melewatkan sesuatu? Bagaimana Anda menangani pemrogram aplikasi yang melakukan pengembangan PL / SQL?