Typically when you need to control database administration in ANY relational database environment, you must implement concepts such as ROLES for users, and you should also segregate your development environment from your production and testing environments.
The first step should be to assign someone to become the official DBA of the database. This entity (whether it is one person, or a group) should be trained as an Oracle DBA preferably. This entity should be responsible for DATA INTEGRITY on the database(s) and that should be their primary focus.
The DBA should be responsible for creating and maintaining your development, testing, and production environments, and creating specific roles with specific rights and users assigned to these various roles. Developers should only have access to the development environment, and only those rights on the database that are deemed appropriate. For example, in some installations, DBA's do all table mainenance and creation, and developers must make requests of the DBA for new tables, views, indexes etc. You need to define what rights each specific role on your database has.
Migration of code from development databases to testing and finally production environments should be controlled by the DBA as well, to insure data integrity.
|