If the security is not a real issue, when you create a user, give all the privileges to him. If they are too many, you're free to edit the list and taylor it to meet your wishes. Be aware of the dba privilege, it could be too much!
grant create session, create table, create procedure, create sequence, create view, create trigger, create synonym, create materialized view, CREATE PUBLIC DATABASE LINK, CREATE DATABASE LINK, query rewrite, create any directory, create type, aq_administrator_role, javasyspriv, dba to username;
alter user username quota unlimited on users;
where users is the tablespace name...